![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| lavan |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
народ подскажите кто знает!
имею базу данных с значениями полей как на русском так и на англ создавал так
если работаю через консоль mysql все отображается как надо,а когда подключаюсь через JDBC русский текст отображается кряказябрами подключаюсь так
Делеал нужные установки
ничего не помагает,русский язык не отображается
КАК ЭТО ИСПРАВИТЬ? |
||||||||
|
|||||||||
| Stolzen |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1041 Регистрация: 17.10.2005 Репутация: 23 Всего: 48 |
Используйте utf8
|
|||
|
||||
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
|
|||
|
||||
| lavan |
|
||||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Добрался до возврата русских букв,только возвращаются не те буквы которые в базе! все это выполняю в консоли mysql
для того чтобы заполнить таблицу делаю
теперь могу вносить русский текст!и при работе в консоли все работает. Теперь подключаюсь через JDBC использую драйвер mysql-connector-java-5.1.6-bin.jar
Настройка для текущего подключения
Теперь здесь
отображаются русские буквы,но я ввел(например) "ячс" а отобразилось "пзб" ЧТО за фигня? |
||||||||||
|
|||||||||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Будь проще:
и больше никакой возни с кодировками - в select все String получаешь с русскими буквами, при insert пишется в 1251. |
|||
|
||||
| lavan |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Я простой как три копейки.Только это тоже не работает,опять возвращаются символы русского языка,но только не те,
что лежат в базе. Не понимаю,когда заполнял строки через консоль,явно указал кодировку
а теперь когда делаю запрос через JDBC полчить нужную строку получилось только так
т.е получается что mysql тупо забил на мое указание кодировки и все положил в его родной Cp866? Либо это как-то связанно с сессиями? Это сообщение отредактировал(а) lavan - 17.10.2011, 15:20 |
||||
|
|||||
| Pawl |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 649 Регистрация: 22.4.2008 Где: Витебск Репутация: 7 Всего: 28 |
Вот сервлетик с jsp, работающий с mySql, который я как-то делал в учебно-воспитательных целях. Он у меня работал как часы. Надеюсь, тебе это поможет!
Присоединённый файл ( Кол-во скачиваний: 3 )
GuestBooks.zip 474,84 Kb-------------------- В действительности всё совсем не так, как на самом деле |
|||
|
||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Как ты забивал данные в сервер? Из консоли? А консоль работает в Cp866. И передает серверу в Cp866, который считает, что данные идут в Cp1251 и спокойно складывает из базу без перекодировки. Смени кодировку консоли или правильно настрой сервер (т.е. вероятно кодировку клиента нужно установить в Cp866). В Яве никаких set character_set_...=cp1251 делать не нужно - кодировки задаются при коннекте. Добавлено через 1 минуту и 37 секунд А родная кодировка для mysql - это latin1 |
|||
|
||||
| lavan |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
секунду,а если я когда ложил данные в консоли,явно указал кодировку
все равно сохранится в кодировке Cp866? |
||||
|
|||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
Нужно в косоли (до входа в базу) набрать chcp. Она выдаст:
Текущая кодовая страница: 866 Теперь набери chcp 1251, ответ: Текущая кодовая страница: 1251 Вот теперь можешь входить в базу и сообщать ей, что у тебя кодировка 1251. А раньше ты обманывал её, говоря что у тебя кодировка 1251, а на самом деле 866. Но это если работать через консоль. Если таблицы создавать и записывать с помощью java, нужен только тот код который я привёл выше. А лучше настроить mysql в файлах конфигурации (по умолчанию mysql работает в кодировке latin1), но для этого нужны права администратора, и что для этого делать не скажу - у меня сейчас mysql не установлена. |
|||
|
||||
| Skipy |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 487 Регистрация: 24.8.2006 Где: Москва, Россия Репутация: 6 Всего: 16 |
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 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 19.10.2011 Репутация: нет Всего: нет |
Модератор: Сообщение скрыто. |
|||
|
||||
| lavan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Всем спасибо за помощь,буду разбираться
|
|||
|
||||
| lavan |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 101 Регистрация: 21.4.2011 Репутация: нет Всего: нет |
Никак не могу въехать
Хорошо с консолью разобрались.Данные хранятся в Cp866.При подключении к б.д из проги я должен указать в какой кодировке у меня там хранятся данные? Т.е эта строка
говорит,что данные хранятся в characterEncoding=Cp866 ? и все дальнейшие вызовы getXXX должны правильно декодировать данные.Но реальность показывает что я ошибаюсь
И без этого
Тоже не работает Это сообщение отредактировал(а) lavan - 20.10.2011, 14:36 |
||||||
|
|||||||
| math64 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 8 Всего: 72 |
У тебя консольное приложение или гуи? Как смотришь результаты? Если через System.out.println() то увидишь кракозябры - по той же причине - кодировка консоли 866, а не 1251.
(В отладчике или при выводе в гуи вывод должен быть нормальным, если не нашаманил с настройками - я, например set character_set_... не пользовался). В jsp тоже можно получить кракозябры - tomcat по умолчанию тоже работает в latin1. |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |