[英]ResultSet.updateRow() produces “Illegal mix of collations (latin1_bin,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '<=>'”
[英]Convert MySQL latin1_bin with Hibernate to utf-8
我有一个MySQL DB(只读,无数据库更改),其中许多varchar字段都编码为latin1_bin。 我无法更改任何数据库结构或创建任何视图。 我可以通过Hibernate访问此字段。 如何将休眠模式转换为UTF-8?
<property name="hibernate.connection.characterEncoding">UTF-8</property>
这不起作用。
我不想直接在我的应用程序中转换任何字段,因为那是很多String字段。
感谢您的回答!
您可以手动将latin1_bin字符串更改为utf-8字符串。
public class StringHelper {
public static String convertToUTF8(String s) {
String out = null;
try {
out = new String(s.getBytes("ISO-8859-1"), "UTF-8");
} catch (java.io.UnsupportedEncodingException e) {
return null;
}
return out;
}
public static void main(String[] args) {
String latinString = "héllo";//just sample not sure real latin string or not.
String utf8String = StringHelper.convertToUTF8(latinString);
System.out.println(utf8String);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.