|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.11.2010, 05:46 | #1 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Проблемы с кодировкой текста в Windows XP
При деплое проекта на целевую машину с Windows XP, появилась проблема:
Что имеется: 1. Java приложение скомпилированное в Windows 7 в среде NetBeans 6.5 c JRE 1.6. 2. MySQL 5.1 с базой в кодировке UTF-8. 3. Целевая машина с Windows XP + JRE 1.6( той же самой версии что и на девелоперской ) и MySQL 5.1(билд вроде тот же). Приложение отображает и вводит данные в базу. Ввод данных происходит следующим образом: 1. Из JTextField.text через String.format или же простой конкатенацией формируется SQL запрос для ввода данных. 2. Запрос выполняется и сразу же обновляется отображение данных. Вот с чем я столкнулся: запрос успешен, но вместо искомого %String_data% в базу добавляются ???????. Это проверялось. Где может быть подвох? На девелоперской машине все расчудесно себе работает, более того в пакете с приложением поставляется и сама SwingLib через которую и делался интерфейс( к слову в линуксе приложение не работает если нет родной версии Swing, но это так - лирическое отступление). Я думаю что это как то связано с дефолтной системной кодировкой. По видимому в Windws 7 на вход к JTextField поступает все тот же знакомый UTF-8 или сам он в него преобразует строку. ( К слову так и непонятно в какой кодировке сохранялись внутренние строки забитые в приложение, в UTF-8? ).
"Тяжело в учении, легко в бою" - А.В. Суворов
|
07.11.2010, 13:08 | #2 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Хороший вопрос! самому стало интересно.
Цитата:
При этом, если кодировка файлов java не utf-8 и в javac не указан -encoding, то строки подвергаются сырому конвертированию из кодировки файла в кодировку utf8. если же кодировка файлов java не utf-8 и в javac указан соответствующий -encoding то конвертация происходит явно из той кодировки в utf8(т.е. все работает впорядке). У вас скорее всего случился конфликт, в следствие того что все строки в Java по-умолчанию представлены двухбайтовой кодировкой(UTF-16LE вроде), и JDBC драйвер не производит конвертации. как найду точный ответ - отпишусь. И еще, попробуйте сразу после установки коннекта отправить запрос к MySQL: set names 'utf8' (или без одинарных кавычек).
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. Последний раз редактировалось alexinspir; 07.11.2010 в 15:30. |
|
10.11.2010, 21:18 | #3 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Как и ожидалось, проблема разрешилась исполнением ритуального танца с бубном перед сервером. Похоже просто забыл перевести MySQL-сервер в режим UTF-8. Дурацкая Latin1, и кому она спрашивается вообще нужна... Во всяком случае после реконфигурации MySQL все заработало как надо.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проблемы с кодировкой UTF8 | Terikon | Общие вопросы Delphi | 30 | 11.09.2011 22:48 |
Проблемы с кодировкой! | bookkc | PHP | 5 | 17.05.2009 22:25 |
Проблемы с кодировкой? | [Smarik] | БД в Delphi | 35 | 15.02.2009 15:32 |
Проблемы с кодировкой | LAGOX | PHP | 7 | 14.02.2009 15:13 |
Проблемы с кодировкой | Levchik | HTML и CSS | 2 | 16.12.2008 16:12 |