Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Необычная проблема с кодировками БД, Кириллица -> Latin-1 
V
    Опции темы
Filin88
  Дата 28.7.2008, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Проблема с кириллицей в БД (mysql-connector-java-5.0.4-bin.jar). По умолчанию данные в ней хранятся в кодировке UTF-8 в секции Latin-1. Программа заносит в БД данные в кодировке UTF-8 НО В КИРИЛЛИЧЕСКУЮ СЕКЦИЮ. Если через EMS данные заносить все нормально, кирилица отображается, но программно ее не занести. Нужно чтобы данные заносились в секцию Latin-1. Как это можно сделать?  smile 
PM MAIL   Вверх
sandello
Дата 29.7.2008, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 295
Регистрация: 18.5.2005
Где: Пермь

Репутация: нет
Всего: 2



Что есть "секция" latin-1?
Какие-то параметры соединения устанавливал?


Это сообщение отредактировал(а) sandello - 29.7.2008, 08:31


--------------------
user posted image
PM MAIL Jabber   Вверх
mbasil
Дата 29.7.2008, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 2
Всего: 13



Попробуйте предварительно установить американскую локаль по по умолчанию.
Код

Locale currentLocale = Locale.getDefault();
Locale.setDefault( Locale.US );
...
Locale.setDefault( currentLocale );

PM MAIL   Вверх
Filin88
Дата 29.7.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Цитата(sandello @ 29.7.2008,  08:30)
Что есть "секция" latin-1?
Какие-то параметры соединения устанавливал?

Откройте таблицу символов, (шрифт любой) выберите в группировке "Диапозпны Юникода". Вот там интересны 2 группы: "Латиница" и "Кириллица". Прога заносит в секцию "Кириллица", а должна в "Латиницу".

Добавлено через 3 минуты и 5 секунд
Цитата(mbasil @ 29.7.2008,  11:01)
Попробуйте предварительно установить американскую локаль по по умолчанию.

Не помогло. Здесь нужно конкретно разобраться с кодами символов
PM MAIL   Вверх
Filin88
  Дата 30.7.2008, 07:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.4.2008

Репутация: нет
Всего: нет



Побившись денек головой ап стену, я таки нашел выход, и все оказалось гораздо проще, чем думалось. Оказывается достаточно перекодиовать строку в формат базы, перед ее занесением в БД. Делается это так:

Код

new String( "Данные типа СТРЫНХ".getBytes("Cp1251"), "latin1") //Строка будет перекодирована из Cp1251 в latin1


 smile  smile  smile 
PM MAIL   Вверх
Aprol
Дата 7.3.2009, 12:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 259
Регистрация: 15.6.2007

Репутация: нет
Всего: нет



промазал сорри

Это сообщение отредактировал(а) Aprol - 7.3.2009, 12:01
PM MAIL   Вверх
math64
Дата 7.3.2009, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 8
Всего: 72



Попровуй соединяться с mysql так:
Код

String encoding = "Cp1251";
String url = "jdbc:mysql://" +host + "/" + dbName + "?useUnicode=true&characterEncoding=" + encoding;
Connection c = DriverManager.getConnection(url, user, password);


Это сообщение отредактировал(а) math64 - 7.3.2009, 20:30
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0907 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.