Конвертировать MySQL latin1_bin с Hibernate в utf-8

У меня есть БД MySQL (только для чтения, без изменений БД) со многими полями varchar, кодируемыми в latin1_bin. Я не могу изменить структуру БД или создать какое-либо представление. Я получаю доступ к этим полям с помощью Hibernate. Как я могу установить Hibernate преобразование в UTF-8??

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

это не работает

Я не хочу преобразовывать какие-либо поля непосредственно в моем приложении, потому что это так много полей String.

Спасибо за ваши ответы!

1 ответ

Вы можете вручную изменить свою строку latin1_bin на utf-8 String.See sample;

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

    }

}
Другие вопросы по тегам