我有一个类似这篇文章的问题。我使用的是netbeans 7.01 IDE和MySQL 5.2.35。我使用了这些技巧,但效果不佳:我在配置文件中添加了以下属性:
<property name="hibernate.connection.useUnicode">true</property>
<property name="hibernate.connection.characterEncoding">UTF-8</property>
以及:
jdbc:mysql://localhost:3307/MY_DB_NAME?useUnicode=true&characterEncoding=UTF-8
但无效!
我还尝试了这个java代码来制作javaStringUnicode,但这也是徒劳的:
public static String toUTF8(String isoString) {
String utf8String = null;
if (null != isoString && !isoString.equals("")) {
try {
byte[] stringBytesISO = isoString.getBytes("ISO-8859-1");
utf8String = new String(stringBytesISO, "UTF-8");
} catch (UnsupportedEncodingException e) {
System.out.println("UnsupportedEncodingException is: " + e.getMessage());
utf8String = isoString;
}
} else {
utf8String = isoString;
}
return utf8String;
}
有人能帮我吗?!
只需将String实例传递给PreparedStatement中的setString()
方法,就可以了(前提是数据库使用UTF8(
顺便说一句:string.lenght() == 0
比"".equals(string)
快得多
也检查数据库字符集是否为UTF-8:http://dev.mysql.com/doc/refman/5.0/en/charset-database.html
您需要将数据库排序规则和表排序规则设置为*utf8_general_ci*。您可以在这里找到如何做到这一点,并确保您的数据库查看器支持utf-8编码,否则您将看到unicode字符为???????
当我持久化数据时,我在Oracle中遇到了同样的问题。但按照以下方式修复了它。
我首先知道我需要使用
Universal version of Oracle
。所以,我重新安装了我的预言机的通用版本。(与MySql案例核对(然后我将所有UTF-8格式的字符串转换为转义码字符串使用java的CCD_ 6工具。
然后一切都很好,因为它在DB和以及在视图中(浏览器(。
Note:
确保您的操作系统上安装了语言包。
希望此输入可以帮助您
我也遇到了这样的问题。我使用.jsp页面,并帮助我在每个.jsp文件中添加了以下行:
<%@ page pageEncoding="utf-8" %>