Преобразование строки MySql ISO-8859-1 в UTF-8 с помощью Java

В базе данных MySql у меня есть столбец, содержащий строку varchar, закодированную с помощью ISO-8859-1 (latin1_swedish_ci).

Когда строка не latin1, MySql сохраняет ее, например, как "à¸à¸µà¹à¸à¸."

Используя Java, мне нужно извлечь его и преобразовать в UTF-8.

Вы знаете, как я могу это сделать?

Спасибо


person user1310165    schedule 18.10.2012    source источник
comment
Вам нужно будет добавить более подробную информацию о том, откуда берется строка и как вы ее вставляете.   -  person Pekka    schedule 18.10.2012
comment
stackoverflow.com/questions/652161/   -  person silly    schedule 18.10.2012


Ответы (1)


Вы имеете в виду как ...

byte[] inIso_8859_1 = "à¸à¸µà¹à¸à¸.".getBytes("ISO-8859-1");
byte[] inUtf_8 = new String(inIso_8859_1, "ISO-8859-1").getBytes("UTF-8");

чтобы проверить байты кодировки UTF-8

String s = new String(inUtf_8, "UTF-8");
System.out.println(s);

отпечатки

à¸à¸µà¹à¸à¸.
person Peter Lawrey    schedule 18.10.2012
comment
Спасибо! но поступая так, в некоторых случаях у меня некоторые символы не преобразованы, или на самом деле ... они есть, но я вижу ◻ Есть идеи? - person user1310165; 18.10.2012
comment
Вы должны убедиться, что вы правильно отображаете UTF-8. - person Peter Lawrey; 18.10.2012
comment
Незначительная деталь: то, что latin1 для MySQL, для остального мира - windows-1252. - person Joni; 18.10.2012