我遇到像this post这样的问题。我正在使用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的://本地主机:3307 / MY_DB_NAME了useUnicode =真安培;的characterEncoding = UTF-8
但无效!
我也试过这个java代码来制作java String Unicode,这也是徒劳的:
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;
}
任何人都可以帮助我吗?!
答案 0 :(得分:2)
JVM中的字符串已经正确编码。无需重新编码。
只需将String实例传递给PreparedStatement中的setString()
方法,你应该没问题(如果您的数据库 使用UTF8)
顺便说一句:string.lenght() == 0
比"".equals(string)
答案 1 :(得分:0)
检查您的数据库字符集是否也是UTF-8:http://dev.mysql.com/doc/refman/5.0/en/charset-database.html
答案 2 :(得分:0)
您需要将db collation和table collation设置为* utf8_general_ci *。您可以找到here如何执行此操作并确保您的数据库查看器支持utf-8编码,否则您将看到unicode字符为???????
答案 3 :(得分:0)
当我持久保存数据时,我在Oracle中面临同样的问题。但是按照以下方式修复它。
我先知道我需要使用Universal version of Oracle
。
所以,我用通用版重新安装我的oracle。 (查看MySql案例)
然后我将UTF-8中的所有字符串转换为转义码
使用java的native2ascii
工具的字符串。
然后一切正常,因为它在DB和中正确呈现 以及视图(浏览器)。
Note:
确保您的语言包已安装在您的操作系统上。
希望此输入可以帮助您
答案 4 :(得分:0)
我也遇到过这样的问题。我正在使用.jsp页面,并帮助我在每个.jsp文件中添加以下行:
<%@ page pageEncoding="utf-8" %>