SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 18.07.2009 00:57:05

fizichello
Участник
Зарегистрирован: 18.07.2009
Сообщений: 3

Иероглифы вместо русских букв

в php страницах кодировка utf-8, после обращения к базе пишу всегда :
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");

mysql база вся на cp1251

настройки my.cnf :

# The following options will be passed to all MySQL clients
[client]
# password       = your_password
port            = 3306
socket          = "F:/Server/mysql/mysql.sock"
default-character-set=cp1251

# Here follows entries for some specific programs

# The MySQL server
[mysqld]
port= 3306
socket= "F:/Server/mysql/mysql.sock"
basedir="F:/Server/mysql"
tmpdir="F:/Server/tmp"
datadir="F:/Server/mysql/data"
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
default-character-set=cp1251
init-connect = "set character set cp1251"

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

Неактивен

 

#2 18.07.2009 01:05:13

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Иероглифы вместо русских букв

Проблема в том, что ваш клиент не понимает в какой кодировке ему передаются данные.
С помощью чего заходите в базу?

Неактивен

 

#3 18.07.2009 01:40:04

fizichello
Участник
Зарегистрирован: 18.07.2009
Сообщений: 3

Re: Иероглифы вместо русских букв

MySQL

    * Сервер: localhost via TCP/IP
    * Версия сервера: 5.1.30-community
    * Версия протокола: 10
    * Пользователь: root@localhost
    * MySQL-кодировка: UTF-8 Unicode (utf8) почему то здесь кодировка стоит utf8, хотя моя база и все таблицы имеют кодировку cp1251

Веб-сервер

    * Apache/2.2.11 (Win32) DAV/2 mod_ssl/2.2.11 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.8
    * Версия MySQL-клиента: 5.1.30
    * PHP расширение: mysql

phpMyAdmin

    * Информация о версии: 3.1.1

Отредактированно fizichello (18.07.2009 01:40:45)

Неактивен

 

#4 18.07.2009 02:49:24

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Иероглифы вместо русских букв

Так у вас иероглифы где вылезают: в клиенте mysql или php админе?
Если последнее, то выполните после подключения

SET NAMES cp1251;

Неактивен

 

#5 18.07.2009 12:45:58

fizichello
Участник
Зарегистрирован: 18.07.2009
Сообщений: 3

Re: Иероглифы вместо русских букв

в пхп админе.
уже делал, не помоглло.

Неактивен

 

#6 18.07.2009 14:06:23

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Иероглифы вместо русских букв

Данные у вас хранятся в нормальном виде (это следует из того, что на сайте и в клиенте mysql они отображаются корректно).
phpadmin не правильно понимает в какой кодировке ему приходят данные, поэтому и отображает их кракозябрами. Посмотрите в настройках какую кодировку использует phpadmin или определите её перекодированием кракозябр в нормальный вид, или простым перебором. И сообщите серверу, что хотите получать данные в этой кодировке.
SET NAMES искомая_кодировка;

Обратите внимание, что после NAMES знак '=' отсутствует.

P.S. Вообще phpadmin довольно глючная штука и лучше от него отказаться и ипользовать, например, MySQL GUI Tools

Неактивен

 

Board footer

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