Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Mysql 4.0.45 база в UTF8 на линуксе. Сам линух тоже в UTF8. Проблемы с сортировкой, LOWER(), UPPER() текстовых (CHAR, TEXT...) полей. за collation utf8_* из дистрибутива НЕ НАДО. Посмотрел в сорцы: там нет данных за диапазон русских букв.
Внимание вопрос :) Есть ли у кого готовые таблицы сортировки для русского сегмента UTF8 для мускула и хаутушка как их подцепить? Буду очень признателен, а то счас рассматривается вариант патченья мускула ручками, но ведь народ живет с ним _давно_, должно ж быть пофиксено.
Неактивен
Возможно дело в версии MySQL. Пробовали ставить MySQL 5?
Неактивен
Sorry plz Разумеется 5.0.45 Очепятался (( Но проблема осталась: не сортируется, не изменяет регистр. Проверялось из консольного mysql. типа 'SELECT UPPER('приВЕТ'); в ответ псевдографика
Неактивен
Какая ОС?
Какой делали SET NAMES в консоли перед указанным запросом?
Если linux, то
[rgbeast@elf ~]$ locale LANG=ru_RU.KOI8-R LC_CTYPE="ru_RU.KOI8-R" LC_NUMERIC=C LC_TIME="ru_RU.KOI8-R" LC_COLLATE=C LC_MONETARY="ru_RU.KOI8-R" LC_MESSAGES="ru_RU.KOI8-R" LC_PAPER="ru_RU.KOI8-R" LC_NAME="ru_RU.KOI8-R" LC_ADDRESS="ru_RU.KOI8-R" LC_TELEPHONE="ru_RU.KOI8-R" LC_MEASUREMENT="ru_RU.KOI8-R" LC_IDENTIFICATION="ru_RU.KOI8-R" LC_ALL= [rgbeast@elf ~]$ mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 5.0.22-log Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> SET NAMES koi8r; Query OK, 0 rows affected (0.00 sec) mysql> SELECT UPPER('приВЕТ'); +-----------------+ | UPPER('приВЕТ') | +-----------------+ | ПРИВЕТ | +-----------------+ 1 row in set (0.02 sec)
Неактивен
Система настроена в ru_RU.UTF-8 база в геа8 ( d CREATE DB я казал UTF-8, данные в нем же). В select все показывается по русски, НО сортировка не работает, lower/upper я попробовал чтоб не набирать длинный селект тем не м енее для данных из базы они не работают
Неактивен
Возможно в базе данные хранятся в неправильной кодировке. Попробуйте сделать дамп и посмотреть действительно ли данные в нем в кодировке UTF-8
Неактивен
Да, Вы правы. Сделал дамп и счас никак не могу понять: в какой кодировке мускул хранит базу. Может кто знает как надо перекодировать? И как потом загнать в базу перекодированные дынные, чтоб и в базе все было правильно?
Неактивен
Пожалуйста посмотрите статьи http://sqlinfo.ru/articles/encoding/
Логика простая - в дампе в начале есть слова SET NAMES имя_кодировки, дамп является хорошим и восстанавливаемым, если
1. SET NAMES в начале дампа совпадает с кодировкой, в которой находится текст в самом дампе (если делаете даип правильной базы, то по умолчанию это UTF8)
2. В описании таблиц задана русская кодировка (DEFAULT CHARSET = имя_кодировки), причем не обязательно, чтобы она совпадала с кодировкой в п.1
Неактивен
Можно сделать преобразование столбцов, в которых хранятся ваши данные, сначала в BINARY (или BLOB), а потом опять в UTF8.
За подробностями обращайтесь к статье Паулюса:
http://sqlinfo.ru/articles/info/5.html
Неактивен
В дампе данные лежат в абсолютно непонятной кодировке (типа "C3 90 C2 xx"). На терминале, который настроен на utf-8 показывает белиберду. Пытался перекодировать в другие кодировки (типа recode) не нашел подходящей. Самое поганое - я не понял что за кодировка и почему мускул хранит данные в ней а не в utf-8 как я заказывал (( и КАК перебросить данные на другой сервак в правильной кодироваке (((
Неактивен
Попробуй это
http://sypex.net/
Я поначалу , пока с кодировкми не разобрался, им пользовался.
Неактивен
Если сделать recode utf8..latin1 dump.sql кодировка станет понятной?
Неактивен
Попробовал utf8->latin1. Стало почти понятно. Но! Некоторые символы не перекодировались (перекодировались неправильно) и выскочило сообщение 'Invalid input in step UTF-8..ISO-8859-1'
Неактивен
Страниц: 1