【问题标题】: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);
    
        }
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多