Дистр: 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?
Заранее спасибо.
Кодировка MySQL (Вопросики)
Модераторы: SLEDopit, Модераторы разделов
-
skor
- Сообщения: 419
- ОС: RTFM-OS v127.0.0.1
Re: Кодировка MySQL
А php-скрипт/веб-сервер в заголовках какую кодировку отдает?
И если руками в браузере кодирвку сменить на 1251 нормально показывает?
И если руками в браузере кодирвку сменить на 1251 нормально показывает?
-
Shamcor
- Сообщения: 25
- ОС: Debian
-
Toy
- Сообщения: 112
- Статус: Профессиональный задрот
- ОС: OS X
Re: Кодировка MySQL
skip-charcter-set-client-handshake
-
Shamcor
- Сообщения: 25
- ОС: Debian
-
Shamcor
- Сообщения: 25
- ОС: Debian
Re: Кодировка MySQL
Довёл вот до чего: текст отображается не вопросами а кракозаврами "Романюк" и приходится переключать язык в браузере в ручную на 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 по умолчанию на юникод, то сбивается кодировка чата.
Добавил в конфиг 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
Чем "травил апач"? 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
<?php
header('content-Type: text/html; charset=utf-8');
?>
header('content-Type: text/html; charset=utf-8');
?>
Ничто не вечно под рутом
-
Toy
- Сообщения: 112
- Статус: Профессиональный задрот
- ОС: OS X