Добавлением в my.cnf строчек
[client]
default-character-set=koi8r
добился того, что в базу русские буквы загружаются правильно.
А вот получить русский текст из базы удалось только с помощью
mysql_query(mysql, "SET NAMES koi8r")
Но это же идеологически неправильно.
Получается, что без этой строчки MySQL при выдаче данных всегда перекодирует строки в непонятную кодировку. Неужели нет способа указать БД, что выдавать информацию нужно в той кодировке, в которой она лежит в базе?
Необходимо ли в системе (в самом Линуксе) на сервере с БД MySQL устанавливать кодировки, которые используются в таблицах БД?
Т.е. если в Линуксе русских кодировок не установлено, сможет ли MySQL корректно выдавать в сеть русские буквы?
Сможет. У Мускула своя поддержка кодировок.02.12.05 18:56 Автор: Den <Денис Т.> Статус: The Elderman
Я в my.cnf указал:
[mysqld]
default-character-set=koi8r
Вхожу в mysql, делаю
create database tratata charaxter set=koi8r;
Проверяю
show create database tratata;
все правильно, кодировка koi8r.
Закачиваю на сервер file1.sql вида
create table qqq(...) character set=koi8r;
Загружаю его в базу:
mysql <file1.sql
Проверяю:
show create table qqq;
все правильно, кодировка koi8r.
Закачиваю на сервер file2.sql вида
insert into qqq(...);
в кодировке koi8r.
При выдаче в браузер получаю ??? вместо русских букв.
Где я торможу? ПАМАГИТЕ!!! :)
Кое-как решил проблему03.12.05 09:55 Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
Добавлением в my.cnf строчек
[client]
default-character-set=koi8r
добился того, что в базу русские буквы загружаются правильно.
А вот получить русский текст из базы удалось только с помощью
mysql_query(mysql, "SET NAMES koi8r")
Но это же идеологически неправильно.
Получается, что без этой строчки MySQL при выдаче данных всегда перекодирует строки в непонятную кодировку. Неужели нет способа указать БД, что выдавать информацию нужно в той кодировке, в которой она лежит в базе?
Ну почему же? Можно!...05.12.05 14:36 Автор: Den <Денис Т.> Статус: The Elderman
Достаточно в своей программе осуществить получение текущего чарсета из глобальной переменной сервера и послать соответствующую sql команду переключения кодировки, подставив туда полученное значение.
Но, наверное, правильнее было прописать в my.cnf в разделе [client] тот чарсет, который используется на клиенте, тогда не пришлось бы менять кодировку при каждом подключении.
Например, если клиент виндовый, то можно прописать следующее:
[client]
default-character-set=cp1251
Сделал show variables;02.12.05 20:50 Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
"При выдаче в браузер получаю ??? вместо русских букв. " Скрипт делает запрос к базе. На чем написан скрипт?02.12.05 20:40 Автор: Garick <Yuriy> Статус: Elderman