2010-06-23 2 views

ответ

3

rs.getString() возвращает строку Java, которая является Unicode по определению.

Если вы получаете искаженные символы, вам необходимо настроить драйвер базы данных для использования правильной кодировки для подключения к базе данных.

2

Просто прочитайте строки. Все строки в Java уже юникод. Если у вас возникли проблемы, то:

  • Это может быть диагностическая проблема - вы можете читать правильные данные из ResultSet но отображая его так выглядит как вы не читали его правильно
  • Это может быть проблема с конфигурацией - возможно, что-то вам нужно сделать при подключении к базе данных, чтобы она определяла правильную кодировку для использования
  • Это может быть проблема с базой данных - база данных не может быть настроена для хранения полной Данные Unicode
  • Это может быть проблема схемы базы данных - t его конкретный столбец, который вы используете, может быть настроен с использованием типа столбца, который не поддерживает полный Юникод.
  • Это может быть проблема в данных, например. с другой программой, неправильно передающей данные.

Я видел все это раньше. Вы должны использовать подробное ведение журнала (например, отдельных символов в шестнадцатеричном формате), чтобы определить, правильно ли вы получили данные или нет, - это скажет вам, где искать дальше.

1

Если вы используете DataSource (F.E. com.mysql.jdbc.jdbc2.optional.MysqlDataSource) можно непосредственно установить канальное кодирование в UTF8 как ds.setEncoding("UTF-8")

Смежные вопросы