информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеСетевые кракеры и правда о деле Левина
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
 Умер Никлаус Вирт 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / web building
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Тогда такой вопрос 02.12.05 20:31  Число просмотров: 3275
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я в 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.
При выдаче в браузер получаю ??? вместо русских букв.
Где я торможу? ПАМАГИТЕ!!! :)
<web building>
Необходимо ли в системе (в самом Линуксе) на сервере с БД... 02.12.05 17:03  
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Необходимо ли в системе (в самом Линуксе) на сервере с БД MySQL устанавливать кодировки, которые используются в таблицах БД?
Т.е. если в Линуксе русских кодировок не установлено, сможет ли MySQL корректно выдавать в сеть русские буквы?
Сможет. У Мускула своя поддержка кодировок. 02.12.05 18:56  
Автор: Den <Denis> Статус: 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 <Denis> Статус: 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  
Автор: Я тут мимо шел Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Сообщения скрипта на русском языке выводятся правильно, а вот данные из базы в ? превращаются. :(
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach