Кодировка MySQL (Вопросики)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

Аватара пользователя
Shamcor
Сообщения: 25
ОС: Debian

Кодировка MySQL

Сообщение Shamcor »

Дистр: Debian Gnu/Linux 5.0R0 Lenny
MySQL: 5.0.51a-24

Создаю БД и таблицу со сравнением cp1251_general_ci, закидываю в таблицу просто именна через phpmyadmin на русском языке.

Пишу приблезитильно похожий скриптик:

<?php
$db = mysql_connect("localhost","test","pass");
mysql_select_db("testbd",$db);
$result = mysql_query("select * from firma",$db);
$myrow = mysql_fetch_array($result);
print $myrow["name"];
?>

Открываю браузером этот php файл и вместо имени которое он должен был выбрать с БД, вижу: ??????.
Вычитал что можно добавить строчку в скрипт при подключении: mysql_query("SET NAMES cp1251"); - Не прокатило.

Добавлял в конфиг MySQL следующее:
character-sets-dir=/путь_к_папке_с_чарсетами
[mysql]
default-character-set=cp1251
[mysqld]
default-character-set=cp1251

Без успеха.

По умолчанию кодировка у MySQL utf-8. Захожу через phpmyadmin - имена отображаются правильно. Может кто подскажет что ещё можно попробывать что б именна отображались в браузере как следует, а не вопросиками. Это же дело в MySQL?
Заранее спасибо.
Спасибо сказали:
skor
Сообщения: 419
ОС: RTFM-OS v127.0.0.1

Re: Кодировка MySQL

Сообщение skor »

А php-скрипт/веб-сервер в заголовках какую кодировку отдает?
И если руками в браузере кодирвку сменить на 1251 нормально показывает?
Спасибо сказали:
Аватара пользователя
Shamcor
Сообщения: 25
ОС: Debian

Re: Кодировка MySQL

Сообщение Shamcor »

skor писал(а):
23.03.2009 17:46
А php-скрипт/веб-сервер в заголовках какую кодировку отдает?
И если руками в браузере кодирвку сменить на 1251 нормально показывает?


Если руками в браузере кодирвку сменить на cp1251, kio8-r, utf-8 и.т.д. выдаёт всё те же знаки вопроса.
Спасибо сказали:
Toy
Сообщения: 112
Статус: Профессиональный задрот
ОС: OS X

Re: Кодировка MySQL

Сообщение Toy »

skip-charcter-set-client-handshake
Спасибо сказали:
Аватара пользователя
Shamcor
Сообщения: 25
ОС: Debian

Re: Кодировка MySQL

Сообщение Shamcor »

Toy писал(а):
23.03.2009 18:05
skip-charcter-set-client-handshake


Дорисовал... перезапустил... Некатит.
Спасибо сказали:
Аватара пользователя
Shamcor
Сообщения: 25
ОС: Debian

Re: Кодировка MySQL

Сообщение Shamcor »

Довёл вот до чего: текст отображается не вопросами а кракозаврами "Романюк" и приходится переключать язык в браузере в ручную на utf-8.
Добавил в конфиг my.cnf после строки [mysqld] следующее:

default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
init-connect="SET NAMES utf8"
skip-character-set-client-handshake

Возникла новая проблемка. У меня (допустим) по адресу www.mysite.com/chat есть чат который шевелится без SQL и использует кодировку cp1251 и apache натравил по умолчанию на cp1251 для него. Если перепишу конфиг Apache по умолчанию на юникод, то сбивается кодировка чата.
Спасибо сказали:
Аватара пользователя
Frank
Сообщения: 1059
ОС: Ubuntu, Debian

Re: Кодировка MySQL

Сообщение Frank »

Shamcor писал(а):
24.03.2009 01:08
apache натравил по умолчанию на cp1251 для него. Если перепишу конфиг Apache по умолчанию на юникод, то сбивается кодировка чата.

Чем "травил апач"? AddDefaultCharset? Тогда так и будет, ибо
# Read the documentation before enabling AddDefaultCharset.
# In general, it is only a good idea if you know that all your files
# have this encoding. It will override any encoding given in the files
# in meta http-equiv or xml encoding tags.
Изображение
Спасибо сказали:
kosteel
Сообщения: 330
Статус: Root Lamer
ОС: Debian GNU/Linux 5.02 amd64

Re: Кодировка MySQL

Сообщение kosteel »

<?php
header('content-Type: text/html; charset=utf-8');
?>
Ничто не вечно под рутом
Спасибо сказали:
Toy
Сообщения: 112
Статус: Профессиональный задрот
ОС: OS X

Re: Кодировка MySQL

Сообщение Toy »

kosteel писал(а):
24.03.2009 12:33
<?php
header('content-Type: text/html; charset=utf-8');
?>

Если сами файлы в другой кодировке, это непокатит
Спасибо сказали: