【问题标题】:Convert MySQL latin1_bin with Hibernate to utf-8使用 Hibernate 将 MySQL latin1_bin 转换为 utf-8
【发布时间】:2014-12-11 10:02:38
【问题描述】:
我有一个 MySQL 数据库(只读,没有数据库更改),其中许多 varchar 字段在 latin1_bin 中编码。我无法更改任何数据库结构或创建任何视图。我可以通过 Hibernate 访问这些字段。如何设置休眠转换为 UTF-8?
<property name="hibernate.connection.characterEncoding">UTF-8</property>
这不起作用。
我不想直接在我的应用程序中转换任何字段,因为那是太多的字符串字段。
感谢您的回答!
【问题讨论】:
标签:
java
mysql
hibernate
utf-8
latin1
【解决方案1】:
您可以手动将 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);
}
}