The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум WEB технологии
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

регистрозависимость, pheonix (ok), 14-Фев-06, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


21. "регистрозависимость"  +/
Сообщение от Ilyang (??), 17-Фев-06, 14:00 
>вобщем вообще что-то всё поломалось, сменил кодировку на utf8 и utf8_general_ci во
>первых во всей базе исковеркались буквы С и Я Ё Й.
это меня не удивляет
>Причём я думал что исковеркались только которые там были, но когда я
>добавлял новые записи он тут же подтирал эти буквы, фигня какая-то
что значит подтирал буквы, не понял.. и вопрос: как добавлял записи в базу? через PMA?
>вобщем,
>во вторых поиск так же тупой, в третьих mysqld перестал киляться скриптом
>тока через kill
скрипт подправить надо

Покажи что говорят (через тот же интерфейс, что ты добавляешь новые записи и они при этом портятся) следующие запросы:
SELECT CHARSET('привет');
SELECT DISTINCT CHARSET(file) FROM ftp;
SELECT COLLATION('привет');
SELECT DISTINCT COLLATION(file) FROM ftp;

Ответить | Правка | Наверх | Cообщить модератору

22. "регистрозависимость"  +/
Сообщение от pheonix (ok), 20-Фев-06, 07:45 
>SELECT CHARSET('привет');
CHARSET('привет')
latin1

>SELECT DISTINCT CHARSET(file) FROM ftp;
CHARSET(file)
utf8

>SELECT COLLATION('привет');
COLLATION('привет')
latin1_swedish_ci

>SELECT DISTINCT COLLATION(file) FROM ftp;
COLLATION(file)
utf8_general_ci

1. делал через PMA через, perl скрипт, через webmin - результат один и тот же;
2. команды выше сделал через webmin;
3. подтираються значит вместо букв 'ё','й','я','с' пишется ',?'.

Вобщем я увидел что у меня эта корявая кодировка осталась всётаки, а изменились только поля БД, вопорс как изменить кодировку самого сервера MySQL, отсылать http://dev.mysql.com/doc/refman/4.1/en/charset-server.html меня не надо я там уже был так и не понял как мне сменить эту кодировку, когда делаю так
/etc/init.d/mysqld stop
а потом
/usr/libexec/mysqld --set-character-server=utf8 --collation-server=utf8_general_ci
пишет что из под рута нельзя запускать MySQL, перехожу su mysql, делаю
/usr/libexec/mysqld --set-character-server=utf8 --collation-server=utf8_general_ci
всё прекрасно пропускает никаких ошибок не выдаёт, но кодировка всё равно latin1 пов сем тем запросам которые выше, т.е. ничего не изменилось, я уже если честно то зае...

Кто мне скажет прямо командами конкретно что нужно сделать чтобы перевести MySQL в utf8 кодировку?

Ответить | Правка | Наверх | Cообщить модератору

23. "регистрозависимость"  +/
Сообщение от pheonix (ok), 20-Фев-06, 08:55 
сделал вот ещё что:

mysql> show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | utf8                       |
| character_set_results    | latin1                     |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)

и вот это
mysql> show character set;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
...
| latin1   | ISO 8859-1 West European    | latin1_swedish_ci   |      1 |
...
| utf8     | UTF-8 Unicode               | utf8_general_ci     |      3 |
...
+----------+-----------------------------+---------------------+--------+
35 rows in set (0.00 sec)

так что сервер MySQL, который у меня, поддерживает utf8, только как его туда переветси?

Ответить | Правка | Наверх | Cообщить модератору

24. "регистрозависимость"  +/
Сообщение от Ilyang (??), 20-Фев-06, 11:41 
В чем проблема непонятно, вроде перезапуск сервера как выше ДОЛЖЕН изменить кодировку сервера..
И кстати он ее изменил.

Сейчас как я понимаю проблема в том что соединение открывается в latin1, почему затрудняюсь сказать:

| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_results    | latin1                     |

Сам с таким не сталкивался, но могу дать рекомендации

1. С mysql.ru FAQ:

Q. Как обеспечить корректную работу MySQL с русскими символами при сортировке и выборке данных?
A. В /etc/my.cnf вписать в блоке [mysqld]: default-character-set=koi8_ru (или cp1251). При работе с базой можно выставить рабочую кодировку через: SET CHARACTER SET koi8_ru

2. C mysql.com Ref.Man:

SET NAMES 'charset_name'
SET CHARACTER SET charset_name

SET NAMES 'cp1251' tells the server “future incoming messages from this client are in character set cp1251.”
или в приблизительном переводе на русский: SET NAMES 'cp1251' сообщает серверу что все последующие входящие сообщения от этого клиента будут приходить в кодировке cp1251

Pheonix, будь я на твоем месте, перекомпилировал бы MySQL с нужной кодировкой по умолчанию, лишние бы отключил. Если сайт русскоязычный и документы в кодировке cp1251, возможно, лучшим вариантом будет использовать именно эту кодировку.

Извините, на этом из обсуждения выпадаю

Ответить | Правка | Наверх | Cообщить модератору

25. "регистрозависимость"  +/
Сообщение от pheonix (ok), 20-Фев-06, 13:42 
>В чем проблема непонятно, вроде перезапуск сервера как выше ДОЛЖЕН изменить кодировку
>сервера..
>И кстати он ее изменил.
>
>Сейчас как я понимаю проблема в том что соединение открывается в latin1,
>почему затрудняюсь сказать:
>
>| character_set_client     | latin1    
>          
>     |
>| character_set_connection | latin1        
>          
> |
>| character_set_results    | latin1      
>          
>    |
>
>Сам с таким не сталкивался, но могу дать рекомендации
>
>1. С mysql.ru FAQ:
>
>Q. Как обеспечить корректную работу MySQL с русскими символами при сортировке и
>выборке данных?
>A. В /etc/my.cnf вписать в блоке [mysqld]: default-character-set=koi8_ru (или cp1251). При работе
>с базой можно выставить рабочую кодировку через: SET CHARACTER SET koi8_ru
>
>
>2. C mysql.com Ref.Man:
>
>SET NAMES 'charset_name'
>SET CHARACTER SET charset_name
>
>SET NAMES 'cp1251' tells the server “future incoming messages from this client
>are in character set cp1251.”
>или в приблизительном переводе на русский: SET NAMES 'cp1251' сообщает серверу что
>все последующие входящие сообщения от этого клиента будут приходить в кодировке
>cp1251
>
>Pheonix, будь я на твоем месте, перекомпилировал бы MySQL с нужной кодировкой
>по умолчанию, лишние бы отключил. Если сайт русскоязычный и документы в
>кодировке cp1251, возможно, лучшим вариантом будет использовать именно эту кодировку.
>
>Извините, на этом из обсуждения выпадаю

ok спасибо, нет все файлы и вообще всё в кодировке utf8, всё равно спасибо за советы

Ответить | Правка | Наверх | Cообщить модератору

26. "регистрозависимость"  +/
Сообщение от pheonix (ok), 20-Фев-06, 14:01 
прикол в том что я только что загнал в эту БД названия в кодировке cp1251 и они прекрасно искались регисро независимым поиском, короче что -то значит в UTF-8 не лады
Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру