SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.03.2011 19:02:45

mernik
Участник
Зарегистрирован: 03.03.2011
Сообщений: 1

В браузере отображаются ����

Добрый день!
Мучаюсь уже второй день, пожалуйста помогите.
В браузере при выводе текста на русском языке из базы данных отображаются ����.
Полагаю, что это из-за несовпадения кодировки MySQL (UTF-8 Unicode) и кодировки самих данных (cp1251_general_ci).

Пытались изменить кодировку MySQL.
Установлен денвер.
команда mysql_query ("SET NAMES cp1251");  , прописанная в php.файле - ничего не дает
изменение настроек в my.cnf - тоже ничего
вот выдержка из my.cnf:

[client]
port                  = 3306
socket                = /tmp/mysql5.sock
default-character-set = cp1251
character-sets-dir    = /usr/local/mysql-5.1/share/charsets

default-character-set = cp1251
init-connect="SET NAMES cp1251"
character-sets-dir="C:/Program Files/MySQL/MySQL Server 5.1/share/charsets"
skip-character-set-client-handshake

И по прежнему на вкладке "Переменные" в phpmyadmin выдается информация о том, что character set client, character set connection, character set results, collation connection - utf8_general_ci

Подскажите, где что не так ???

Неактивен

 

#2 03.03.2011 21:09:21

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: В браузере отображаются ����

init-connect — зло. Вы этим сами убиваете себе возможность выбора
кодировки в клиенте.

SET NAMES нужно делать в ту кодировку, которую ожидает клиент.
Судя по тому, что выводятся символы, не входящие в 1251, Вы ожи-
даете utf8.

Неактивен

 

#3 15.03.2011 14:17:51

anton25
Участник
Зарегистрирован: 15.03.2011
Сообщений: 2

Re: В браузере отображаются ����

Добрый день.
Опишу ситуацию: создал БД через phpmyadmin поменял кодировку на cp1251_general_ci
вывожу в гугл хром: сам текст нормально, а название вкладки - символы. Иду в iexplorer - а там все наоборот: текст квадратики, название вкладки нормально. меняю в iexplorer кодировку с юникод (utf8) на кирилица (windows): все становится как в гугл хром: сам текст нормально, а название вкладки - символы. А как их подвести к одной кодировке?
файл my:
[client]
port                  = 3306
socket                = /tmp/mysql5.sock
default-character-set = cp1251
character-sets-dir    = /usr/local/mysql-5.1/share/charsets

#
# Параметры MySQL-сервера.
#
[mysqld]
# Кодировка баз данных по умолчанию.
default-character-set = cp1251
init-connect = "set names cp1251"
skip-character-set-client-handshake

Apache/2.2.4 (Win32) mod_ssl/2.2.4 OpenSSL/0.9.8k PHP/5.2.12
MySQL client version: 5.0.51a
PHP extension: mysql

ps
поменял в файле my всю кодировку на utf8: в iexplorer все наладилось, зато в хроме вообще весь русский текст заменился на символы.

Неактивен

 

#4 15.03.2011 14:20:21

anton25
Участник
Зарегистрирован: 15.03.2011
Сообщений: 2

Re: В браузере отображаются ����

собственно вопрос: как сделать, чтобы во всех браузерах с настройками по умолчанию отображался нормальный текст?
в опере не смотрел.

Неактивен

 

#5 17.03.2011 00:19:16

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: В браузере отображаются ����

Вы не поверите, но FAQ#8.

Для того, чтобы браузеры определяли кодировку, надо выставлять заголовки HTTP
Content-type: text/html; charset=utf8 (ну или другая правильная кодировка). К
MySQL этот вопрос отношения не имеет совсем smile

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson