1

Тема: помогите с кодировкой!!!!

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

у меня:
phpMyAdmin - 2.11.6
Версия MySQL-клиента: 4.1.10
Версия сервера: 4.1.10-standard
Версия протокола: 10
Сервер: Localhost via UNIX socket
MySQL-кодировка: UTF-8 Unicode (utf8)
Сопоставление соединения с MySQL: cp1251_general_ci
база даных в cp1251_general_ci

помогите!

2

Re: помогите с кодировкой!!!!

Покажите что выводит запрос:

SHOW GLOBAL VARIABLES LIKE 'char%';

Если у вас есть доступ к конфигурационному файлу MySQL (my.cnf) и предполагается использовать данные только в кодировке cp1251, то можно в раздел [mysql] добавить строку:
default-character-set=cp1251
А также в раздел [mysqld] две следующие строки:
default-character-set=cp1251
init-connect="SET NAMES cp1251"

Если доступа к my.cnf нет, то потребуется редактировать скрипт таким образом, чтобы сразу после функции подключения mysql_connect, выполнялся запрос SET NAMES cp1251. Пример строки следующей за mysql_connect:

mysql_query('SET NAMES "cp1251"');

Также посмотрите правильно ли данные отображаются в phpMyAdmin, нет ли крякозябов вместо кирилицы.

3 (изменено: asd, 2008-07-18 10:23:55)

Re: помогите с кодировкой!!!!

запрос SHOW GLOBAL VARIABLES LIKE 'char%'; выводит

Variable_name  Value 
character_set_client latin1
character_set_connection latin1
character_set_database latin1
character_set_results latin1
character_set_server latin1
character_set_system utf8
character_sets_dir /usr/local/mysql-standard-4.1.10-pc-linux-gnu-i686...


доступа к my.cnf нету, а после запроса mysql_query('SET NAMES "cp1251"'); выкидывает следующую ошыбку
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query('SET NAMES "cp1251"')' at line 1

в phpmyadmin все отображается нормально

4

Re: помогите с кодировкой!!!!

asd
У вас кодировка соединения с MySQL стоит в latin1, а вам необходимо cp1251.

mysql_query - это не SQL-запрос, а функция PHP и вставлять данную строку надо в файл .php, в котором вы найдете функцию mysql_connect, сразу после нее.
Редактирование PHP кода - для вас единственный выход при таких настройках MySQL.
Если вы сомневаетесь в том куда и как вставлять данную строку, то покажите все места скрипта, в которых найдете mysql_connect (обязательно уберите из параметров функции пароль и данные сервера, если они там будут!).