Java + Mysql от ISO-8859-1 до UTF-8 - PullRequest
       14

Java + Mysql от ISO-8859-1 до UTF-8

0 голосов
/ 28 декабря 2011

У меня есть одна база данных с кодировкой Windows Baltic (windows-1257).Я копирую данные в другую базу данных с кодировкой UTF-8 на литовском языке (используя язык sql).После копирования данных я все еще не получаю значения UTF-8 - «Nerûdijantis plienas», и мне нужно «Nerūdijantis plienas».И я сделал небольшое Java-приложение, которое должно было взять данные из UTF-8 db с данными, скопированными из Latin db и System.out.println(..).Но теперь, так как данные все еще неверны после копирования, я получаю неправильную кодировку.Что я должен делать?Должен ли я копировать данные с какими-то предложениями кодирования или использовать Java для изменения кодировки во время печати?

EDIT : мне нужно что-то вроде iconv в PHP, оно работает, когда я его используюконвертировать данные.

Ответы [ 4 ]

2 голосов
/ 28 декабря 2011

может помочь вам использовать MySql Collations ,

0 голосов
/ 10 января 2012

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

0 голосов
/ 28 декабря 2011

Конечно, в базе данных текст должен быть в UTF-8.Вы можете сделать mysqldump только для одной соответствующей таблицы, чтобы проверить, где она идет не так.

Хороший редактор для программистов, такой как JEdit (http://jedit.org) можетпереключение кодировок, что может помочь.

Веб-сервер должен будет выполнить response.setContentText ("text / html; charset = UTF-8"). У обычного приложения не должно быть проблем, так как Unicode используется внутреннеJava и кодировка операционной системы - литовская: System.getProperty("file.encoding").

Для драйвера Java MySQL вам также потребуется установить связь в UTF-8: Проблема кодировки символов в linux иmysql

System.out.println печатает в системной кодировке по умолчанию, что может вводить в заблуждение. Лучшим является шестнадцатеричный дамп байтов, так что вы можете проверить.

0 голосов
/ 28 декабря 2011

Для преобразования ISO-8859-1 в UTF-8 мы можем использовать следующий код

// преобразовать ISO-8859-1 в UTF-8

byte[] utf8 = new String(dataInString, "ISO-8859-1").getBytes("UTF-8");

или посмотрите на java.nio.Charset

см. Преобразование UTF-8 в ISO-8859-1 в Java - как сохранить его как один байт

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...