Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> MySql и русские букв? 
V
    Опции темы
unkis
  Дата 13.9.2005, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Ребята вот так вот я создаю таблику
Код

CREATE TABLE `film` (
  `FilmId` varchar(100) character set utf8 default NULL,
  `ID` int(11) NOT NULL auto_increment,
  `FName` varchar(100) character set cp1251 collate cp1251_ukrainian_ci default NULL,
  `FDownload` varchar(200) character set utf8 default NULL,
  `FHash` varchar(40) character set utf8 NOT NULL default '',
  `FDescription` text character set utf8,
  `FLSeed` varchar(20) character set utf8 default NULL,
  `FSize` varchar(20) character set utf8 default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='InnoDB free: 4096 kB'


В поле FName должны хранится русские буквы, но там вопросики, что делать?


--------------------
www.unkis.com
PM MAIL WWW   Вверх
PARROT
Дата 13.9.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

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



setlocale(LC_ALL, "ru_RU.CP1251");



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
Бонифаций
Дата 15.9.2005, 08:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(unkis @ 13.9.2005, 12:58)
Ребята вот так вот я создаю таблику
Код

CREATE TABLE `film` (
  `FilmId` varchar(100) character set utf8 default NULL,
  `ID` int(11) NOT NULL auto_increment,
  `FName` varchar(100) character set cp1251 collate cp1251_ukrainian_ci default NULL,
  `FDownload` varchar(200) character set utf8 default NULL,
  `FHash` varchar(40) character set utf8 NOT NULL default '',
  `FDescription` text character set utf8,
  `FLSeed` varchar(20) character set utf8 default NULL,
  `FSize` varchar(20) character set utf8 default NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=cp1251 COMMENT='InnoDB free: 4096 kB'


В поле FName должны хранится русские буквы, но там вопросики, что делать?

Надо еще настроить клиентскую часть.
Первым делом выполни запрос

SET NAMES CP1251;

(вместо cp1251 - конечно поставь свой charset, который на клиентской машине)


--------------------
 Бонифаций.
 
PM MAIL ICQ Skype GTalk Jabber YIM   Вверх
Mal Hack
Дата 15.9.2005, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Цитата(PARROT @ 13.9.2005, 16:06)
setlocale(LC_ALL, "ru_RU.CP1251");

Это локаль для PHP...

А вообще поиск рулит.
http://forum.vingrad.ru/index.php?showtopi...view=getnewpost
PM ICQ   Вверх
onsh76
Дата 4.6.2006, 06:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Теперь моя очередь раскрутить наболевшую тему...  smile 
Итак, что имеем: 
Сервер: 5.0.21 на виндах ХР
Дефолтовая кодировка сервера: utf-8;
Создал базу в кодировке utf-8;
Создал таблицу типа InnoDb в кодировке utf-8.

В  notepad-e набил вот такой вот стэйтмент и сохранил его в файле с кодировкой utf-8.
Делаю: copy statement from open file and paste it to the mysql console:
Код

mysql> INSERT INTO dept (id, grad_id, code, name, sort_order, status)
    ->   VALUES (1, 1, "1971_7", "Просто тестовое значение..." , "1971_7", 0);
ERROR 1406 (22001): Data too long for column 'name' at row 1


Результат видите выше. 
Для подтверждения привожу ниже значения env.variables сервака:

Код

 character_set_client            | utf8
 character_set_connection        | utf8
 character_set_database          | utf8
 character_set_filesystem        | binary
 character_set_results           | utf8
 character_set_server            | utf8
 character_set_system            | utf8
 character_sets_dir              | C:\mysql.5.0.21\share\charsets\
 collation_connection            | utf8_general_ci
 collation_database              | utf8_general_ci
 collation_server                | utf8_general_ci


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

Спасибо за помощь, коллеги! 
PM MAIL   Вверх
igorold
Дата 5.6.2006, 07:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 557
Регистрация: 22.12.2005
Где: Россия->Урал-& gt;Миасс

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



а можно посмотреть описание полей id, grad_id, code, name, sort_order, status ??? 


--------------------
... у семи нянек 14 сисек ...  
Putin here, Putin there, Putin almost everywhere!
PM MAIL   Вверх
Ignat
Дата 5.6.2006, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(onsh76 @  4.6.2006,  07:48 Найти цитируемый пост)
and paste it to the mysql console

А SSH-клиент, в котором открыта консоль, тоже работает в UTF-8   smile  


--------------------
Теперь при чем :P
PM   Вверх
onsh76
Дата 5.6.2006, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



igorold, 
Ignat, 
Спасибо за заботу. Прилагаю то, что упустил.
Значит все описанное выше уместно для моего домашнего компа, т.е. mysql client использовался под виндовским шеллом (  известным также как дос- command prompt) и соответственно  SSH-client не использовался. У хостера нет такой фичи, как ssh соединений, только telnet. Вот что интересно, я законнектился с помощью putty утилиты посредством телнет-а к хостеру, вызвал mysql, создал таблицу:  

Код

CREATE TABLE if not exists dept
(
   id                        INT                            not null AUTO_INCREMENT,
   grad_id                   INT                            not null,
   code                      VARCHAR(30)                    not null,
   name                      VARCHAR(250)                   not null,
   sort_order                VARCHAR(50),
   status                    INT,
   ext_ref                   VARCHAR(500),
   primary key (id),
   unique (code)
   
)ENGINE=INNODB DEFAULT CHARSET=utf8;


Утилита putty была выставлена на utf-8 (Window->Translation). Открыл файлик сохраненный в utf-8, в котором сохранил данные для загрузки в таблицу, copy & paste insert statement (смотри выше мой пост), commit, далее выборка из таблицы  и  нет проблем - все работает пучком .... И у меня и у хостера сервак и база создана в utf-8, только хостинг бежит на linux-e, а дома у меня виндовоз. 

В чем же дело-то - в виндах что-ли?   

Это сообщение отредактировал(а) onsh76 - 5.6.2006, 09:28
PM MAIL   Вверх
Ignat
Дата 5.6.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(onsh76 @  5.6.2006,  10:27 Найти цитируемый пост)
В чем же дело-то - в виндах что-ли?  

Ага... Если быть точным - в 866 кодировке досшелла =))

если хочется выполнить тоже самое на винде, то можно редиректом stdin:

Код

mysql -u root -p --database=mydatabase < statement.sql
 


--------------------
Теперь при чем :P
PM   Вверх
onsh76
Дата 5.6.2006, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Ignat, 

Ну спасибо дружище... Выручил  smile 
Я над этой хренотенью бился уже не один день, огромный тебе респект за это!
Пока еще сам не могу это сделать - постов маловато - добавь себе плюсик в репу.

Единственное - маленькая проблемка в вопросе тестирования: через веб приложение написанное на Java, я вижу контент в требуемой кодировке через броузер.  Ну и опять же, через виндовский шелл - кракозяблики, несмотря на то, что после логина я выполнил вот это:

Код

SET NAMES 'utf8'; 


Опять прелести от мелкомягких, что-ли? Какой же клиент лучше использовать тогда? 
PM MAIL   Вверх
Ignat
Дата 5.6.2006, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

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



Цитата(onsh76 @  5.6.2006,  11:22 Найти цитируемый пост)
добавь себе плюсик в репу

Не умею  smile 

Цитата(onsh76 @  5.6.2006,  11:22 Найти цитируемый пост)
Опять прелести от мелкомягких, что-ли?

Это всё к вопросу о кодировке cp866.

Цитата(onsh76 @  5.6.2006,  11:22 Найти цитируемый пост)
Какой же клиент лучше использовать тогда?  

Не знаю... У меня разработка преимущественно на *nix'ах, там этих проблем нет  smile 
 


--------------------
Теперь при чем :P
PM   Вверх
onsh76
Дата 5.6.2006, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Ignat @ 5.6.2006,  10:29)
Цитата(onsh76 @  5.6.2006,  11:22 Найти цитируемый пост)
добавь себе плюсик в репу

Не умею  smile 


Сразу видно - скромный парень  smile . 
Свой вклад я внес,  за тебя похлопотал твоему коллеге по форуму.

Я думаю есть смысл добавить в FAQ то, с чем я боролся - глядишь поможет еще кому-нить... 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




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


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

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