The OpenNET Project / Index page

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

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Раздел полезных советов: Как в MySQL обеспечить правильную с..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Как в MySQL обеспечить правильную с..."  +/
Сообщение от auto_tips on 11-Июн-03, 13:43 
MySQL должен быть собран с ключами:
   ./configure --with-charset=koi8_ru --with-extra-charsets=all
Далее, сразу после каждого соединения с базой нужно использовать оператор:
    SET CHARACTER SET cp1251_koi8
Если данные в cp1251 уже в базе, их нужно поместить в базу вновь.


URL:
Обсуждается: http://www.opennet.dev/tips/info/498.shtml

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

Оглавление

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

1. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Nickolay on 11-Июн-03, 13:43 
брррр как некрасиво.
а просто запускать демон с default-character-set=cp1251 ???
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от uldus on 11-Июн-03, 14:22 
>брррр как некрасиво.
>а просто запускать демон с default-character-set=cp1251 ???

Некрасиво запускать демон с default-character-set=cp1251 под Unix системой.
Пользователям должно быть настоятельно рекомендовано держать базы в koi8-r, не хотят - пусть используют кривые решения.

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

3. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Nickolay on 12-Июн-03, 10:24 
>Некрасиво запускать демон с default-character-set=cp1251 под Unix системой.
>Пользователям должно быть настоятельно рекомендовано держать базы в koi8-r, не хотят -
>пусть используют кривые решения.
IMHO это Ваше IMHO.
криво - это заставлять пользователей(клиентов). кажется уже прошел период когда в юниксе были проблемы с ср1251... если ср1251 - это кривизна - то пардон, зачем тогда вообще поддержка ср1251?
это всего лишь мое IMHO.
p.s. вот уже года два-три у нас работает несколько mySQL-серверов с ср1251 и никаких проблем...
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от uldus on 12-Июн-03, 19:05 
>криво - это заставлять пользователей(клиентов).

Ориентироваться нужно на запросы лузеров, а на пожелания квалифицированных пользователей. К тому же, под юникс родная кодировка - KOI8-R, и уже только поэтому серверные процессы в системе с KOI8-R окружением должны работать под KOI8-R локалью. А перекодирвка дожна быть настраиваемой и прозрачнойдля клиента (пример, PostgreSQL), а не через кривой хак как в MySQL.

>кажется уже прошел период когда в юниксе

Под юниксом я никогда не буду запускать скрипт работающий с текстом в cp1251.

>это всего лишь мое IMHO.
>p.s. вот уже года два-три у нас работает несколько mySQL-серверов с ср1251
>и никаких проблем...

Пока клиент не появится желающий базу в koi8-r, что тогда ему предложите ? Перекодировки koi8r=>cp1251, в отличие от cp1251=>koi8r в MySQL нет. А вот клиент может оказаться значительнее и важнее всех cp1251 юзеров.

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

5. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Аноним on 13-Июн-03, 10:24 
перекодировка cp1251=>koi8r ? а куда же у вас теряются "лапки", беларуские, българские и украинские символы?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Nikolaev D. email on 16-Июн-03, 09:28 
>К тому же, под юникс родная кодировка - KOI8-R
Не согласен. Все проблемы решаются раз и навсегда при использовании UTF-8.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от OlegI email on 26-Июн-03, 22:30 
Кодировка Koi-8 для баз противопоказана по причине падения производительности при сортировках. Она единственная из всех - нелексикографическая. Т.е. бинарная сотрировка с ней не работает. База должна быть либо в cp1251, либо в utf8. Если же вдруг клинету нужно отдавать в koi-8, то проще использовать перекодировку.
"роднистость" кодировки для ОС это все равно, что "если русский, то должен беспробудно пить водку"
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от uldus on 26-Июн-03, 23:07 
>Кодировка Koi-8 для баз противопоказана по причине падения производительности при сортировках.

У программистов читавших хотябы Д. Кнута потери производительности не происходит.

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

9. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от kryser email on 28-Июн-03, 22:47 
Запусти mysql вот такой строкой:
/bin/sh /usr/local/bin/safe_mysqld --default-character-set=cp1251 &
у меня била таже проблема когда-то и давно уже нет:)
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Про Unicode"  +/
Сообщение от uldus on 01-Июл-03, 10:51 
>Не согласен. Все проблемы решаются раз и навсегда при использовании UTF-8.

UTF-8 не решает все проблемы.

Гланые 2 недостатка unicode:

1. Значительное усложнение. Unicode не "прозрачна", не обладая специальными средствами невозможно уловить содержимое текста, в отличии, например, от koi8-r, которая замечательно подходит для передачи данных в сети. Другая сторона усложнения - необходимость модификации ПО, старые программы так просто с Unicode не заработают.

2. Увеличение объема текста. Если для офисных документов - это почти не заметно, то для текстов передаваемых по сети увеличение объема до 2 раз (для кирилицы UTF-8 - 2 байта, англоязычные пользователи чувствуют себя комфортно используя 1 байтное UTF-8) значительно влияет на трафик и как следствие стоимость и время передачи. Увеличение объема храненимой информации ведет к дополнительным затратам на обработку и чтение данных. Расширенные символы в HTML документах прекрасно представляются в "&...;" нотации.

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

11. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Visual email(??) on 16-Фев-06, 23:18 
Хелп ! Прблемма с кодировкой в форуме, что уже только не делал, а все равно вместо русских букв знаки вопроса. Я пользуюсь phpmyadmin и сейчас стоит MySQL-кодировка: UTF-8 Unicode (utf8), изменить ее пока у меня невышло. Дело в этом ?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

12. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Genia email on 02-Окт-06, 13:25 
Первый запрос к БД после подключения справится с utf8:
mysql_query("SET NAMES 'cp1251'");
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от vasilich email(ok) on 26-Фев-07, 20:49 
крыша едит от этих кодировок. програмеры из mysql решили подкинуть гемора
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от Dmitriy email(??) on 24-Дек-07, 17:28 
у меня похожая проблема,
есть Linux-сервер с локалью koi8-r на нём apache и  mysql собран c --with-charset=koi8r --with-extra-charsets=all, в БД храняться фамилии на русском. При обращении через php в БД sql запросом типа "select name from table order by name asc" сортировка по алфавиту не происходит, точнее частично не происходит - имена начинающиеся на З,В,Ч почемуто идут после У. Пробовал делать всё чего здесь в форуме написали - ничего не выходит. Куда копать?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Как в MySQL обеспечить правильную сортировку данных в кодиро..."  +/
Сообщение от FractalizeR email(??) on 28-Дек-07, 18:51 
А причем тут программисты и кнут, если сортировку выполняет MySQL?
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору


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

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




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

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