将带有Hibernate的MySQL latin1_bin转换为utf-8

时间:2014-10-16 06:26:53

标签: java mysql hibernate utf-8 latin1

我有一个MySQL数据库(只读,无数据库更改),在latin1_bin中编码了许多varchar字段。我无法更改任何数据库结构或创建任何视图。我可以使用Hibernate访问这些字段。如何将hibernate转换为UTF-8?

<property name="hibernate.connection.characterEncoding">UTF-8</property> 

这不起作用。

我不想直接在我的应用程序中转换任何字段,因为它是如此多的字符串字段。

感谢您的回答!

1 个答案:

答案 0 :(得分:0)

您可以手动将 latin1_bin 字符串更改为 utf-8 String.See示例;

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);

    }

}