Недавно я преобразовал мою базу данных latin1 в utf8. все мои сопоставления и свойства соединения установлены на utf8, также я использую & useUnicode для url драйвера mysql.Кодирование Java, подключение к базе данных
Вопрос в том, что, поскольку Java хранит строки в utf16, мне нужно сделать какое-то преобразование, или же драйвер конвертирует его на лету с utf16 в utf8 для соединения и наоборот? Я вообще спрашиваю, но и для весеннего jdbc, который мы в настоящее время используем.
Редактировать: Скажем, пользователи набирают любой тип строки независимо от того, какая кодировка находится в swing JTextField. Java принимает его, преобразует его в utf16 и сохраняет его. если я сказал моему драйверу jdbc, что все данные, которые я отправил, уже есть utf8, и он не должен преобразовывать, как это работает. Конечно, я делал тесты, и все было хорошо, но почему?
Почему бы вам не попробовать и не рассказать нам? :) –
Это слишком хорошо, чтобы продлиться ... так что я лучше спрошу :) – JavaDesire
java не «хранит» строки в UTF-16, он манипулирует символами как Unicode, внутреннее представление не имеет значения, вы рассказываете, как вы хотите «хранить» их извне. Вы оставляете это до значения по умолчанию, которое является вашим выбором. Большинство людей делают их внешне как UTF-8. –