| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Проблема с русским языком |
| Автор: lavan 16.10.2011, 14:33 | ||||||||
| народ подскажите кто знает! имею базу данных с значениями полей как на русском так и на англ создавал так
если работаю через консоль mysql все отображается как надо,а когда подключаюсь через JDBC русский текст отображается кряказябрами подключаюсь так
Делеал нужные установки
ничего не помагает,русский язык не отображается
КАК ЭТО ИСПРАВИТЬ? |
| Автор: Stolzen 16.10.2011, 15:29 |
| Используйте utf8 |
| Автор: lavan 16.10.2011, 15:33 |
| |
| Автор: lavan 17.10.2011, 13:12 | ||||||||||
Добрался до возврата русских букв,только возвращаются не те буквы которые в базе! все это выполняю в консоли mysql
для того чтобы заполнить таблицу делаю
теперь могу вносить русский текст!и при работе в консоли все работает. Теперь подключаюсь через JDBC использую драйвер mysql-connector-java-5.1.6-bin.jar
Настройка для текущего подключения
Теперь здесь
отображаются русские буквы,но я ввел(например) "ячс" а отобразилось "пзб" ЧТО за фигня? |
| Автор: math64 17.10.2011, 13:46 | ||
Будь проще:
и больше никакой возни с кодировками - в select все String получаешь с русскими буквами, при insert пишется в 1251. |
| Автор: lavan 17.10.2011, 14:03 | ||||
| Я простой как три копейки.Только это тоже не работает,опять возвращаются символы русского языка,но только не те, что лежат в базе. Не понимаю,когда заполнял строки через консоль,явно указал кодировку
а теперь когда делаю запрос через JDBC полчить нужную строку получилось только так
т.е получается что mysql тупо забил на мое указание кодировки и все положил в его родной Cp866? Либо это как-то связанно с сессиями? |
| Автор: Pawl 17.10.2011, 20:50 |
| Вот сервлетик с jsp, работающий с mySql, который я как-то делал в учебно-воспитательных целях. Он у меня работал как часы. Надеюсь, тебе это поможет! |
| Автор: lavan 18.10.2011, 15:44 | ||||
секунду,а если я когда ложил данные в консоли,явно указал кодировку
все равно сохранится в кодировке Cp866? |
| Автор: math64 18.10.2011, 19:14 |
| Нужно в косоли (до входа в базу) набрать chcp. Она выдаст: Текущая кодовая страница: 866 Теперь набери chcp 1251, ответ: Текущая кодовая страница: 1251 Вот теперь можешь входить в базу и сообщать ей, что у тебя кодировка 1251. А раньше ты обманывал её, говоря что у тебя кодировка 1251, а на самом деле 866. Но это если работать через консоль. Если таблицы создавать и записывать с помощью java, нужен только тот код который я привёл выше. А лучше настроить mysql в файлах конфигурации (по умолчанию mysql работает в кодировке latin1), но для этого нужны права администратора, и что для этого делать не скажу - у меня сейчас mysql не установлена. |
| Автор: Skipy 19.10.2011, 17:12 |
| lavan, почитайте вот это: http://www.skipy.ru/technics/encodings.html http://www.skipy.ru/technics/encodings_webapp.html http://www.skipy.ru/technics/encodings_console_comp.html Там про кодировки вообще, работающий пример с MySQL в частности, ну и про консоль есть. |
| Автор: langzi 19.10.2011, 17:21 |
Модератор: Сообщение скрыто. |
| Автор: lavan 19.10.2011, 19:59 |
| Всем спасибо за помощь,буду разбираться |
| Автор: lavan 20.10.2011, 14:06 | ||||||
| Никак не могу въехать Хорошо с консолью разобрались.Данные хранятся в Cp866.При подключении к б.д из проги я должен указать в какой кодировке у меня там хранятся данные? Т.е эта строка
говорит,что данные хранятся в characterEncoding=Cp866 ? и все дальнейшие вызовы getXXX должны правильно декодировать данные.Но реальность показывает что я ошибаюсь
И без этого
Тоже не работает |
| Автор: math64 20.10.2011, 19:02 |
| У тебя консольное приложение или гуи? Как смотришь результаты? Если через System.out.println() то увидишь кракозябры - по той же причине - кодировка консоли 866, а не 1251. (В отладчике или при выводе в гуи вывод должен быть нормальным, если не нашаманил с настройками - я, например set character_set_... не пользовался). В jsp тоже можно получить кракозябры - tomcat по умолчанию тоже работает в latin1. |
| Автор: lavan 20.10.2011, 22:34 |
| Данные в базу заносились напрямую в mysql.А читаю из базы GUI прогой.Данные ложу в ArrayList.На крякозябры проверяю в пошаговой отладке до вывода на экран они не доходят |