Java конвертирует ISO-8859-1 в UTF-8 с правильными символами Юникода - PullRequest
2 голосов
/ 16 февраля 2011

У меня есть некоторый текст ISO-8859-1, который я пытался преобразовать в UTF-8, но в итоге получаю символы, которые отображаются неправильно.Я использовал множество стандартных встроенных преобразований кодировок Java, которые в значительной степени основаны на Charset.decode и встроенном CharsetDecoder.

Это приводит к двум проблемам:

  • У меня есть некоторые символы, которые отлично выглядят в ISO, но дерьмо в Java, так как я вывожу в UTF-8, как и большинство Java-приложений.
  • Я не могу вставить в MySQL , даже если для него установлено UTF-8

Для MySQL я получаю исключение (см. Ссылку выше):

Причина: java.sql.SQLException: Неверное строковое значение: '\ xC2 \ x9Esk \ xC3 \xA9 ... 'для столбца' b 'в строке 1

Есть ли Java iconv или лучший декодер / преобразователь символов, чем встроенный?

1 Ответ

9 голосов
/ 16 февраля 2011

Вы уверены, что у вас есть ISO-8859-1? У вас может быть Win-1252, который может быть как-то близко, за исключением дюжины или около того символов. Это \ x9E поднимает это подозрение со мной.

Попробуйте пометить ваш источник как WIN-1252, и он должен преобразоваться правильно.

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