Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Необходимо ли в системе (в самом Линуксе) на сервере с БД... 02.12.05 17:03
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
|
Необходимо ли в системе (в самом Линуксе) на сервере с БД MySQL устанавливать кодировки, которые используются в таблицах БД?
Т.е. если в Линуксе русских кодировок не установлено, сможет ли MySQL корректно выдавать в сеть русские буквы?
|
|
Сможет. У Мускула своя поддержка кодировок. 02.12.05 18:56
Автор: Den <Денис Т.> Статус: The Elderman
|
|
| |
Тогда такой вопрос 02.12.05 20:31
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
|
Я в 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
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
|
Сделал
show variables;
и нашел там такие переменные
character_set_client latin1
character_set_connection latin1
character_set_database koi8r
character_set_results latin1
character_set_server koi8r
character_set_system utf8
Может быть их надо настроить?
|
| | |
"При выдаче в браузер получаю ??? вместо русских букв. " Скрипт делает запрос к базе. На чем написан скрипт? 02.12.05 20:40
Автор: Garick <Yuriy> Статус: Elderman
|
|
| | | |
Скрипт на C написан 02.12.05 20:43
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
|
Сообщения скрипта на русском языке выводятся правильно, а вот данные из базы в ? превращаются. :(
|
|
|