MySQl character set change

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

MySQl character set change

Сообщение Earl Grey »

Хе хе,

при создании MySQL базы не уделил достаточного внимания дефолтным настройкам.

В результате русскоязычная база размещается в таблицах с Latin-1 char set (а collation вообще шведский :) )

Отображает (в форуме) все в принципе нормально, но иногда же и в базе кое-что подсмотреть или поправить надо, а там - кракозяблики.

Как это лечится?
Аватара пользователя
mrskhris
Маньяк
Сообщения: 2082
Зарегистрирован: 06 июн 2005, 19:37
Откуда: RU - KY - NW - CQ
Контактная информация:

Сообщение mrskhris »

На collation можно плевать, это все равно, что латинский (вот только сортироваться будет странно).
Кодировка в браузере какая по умолчанию стоит?
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

Сообщение Earl Grey »

mrskhris писал(а):На collation можно плевать, это все равно, что латинский (вот только сортироваться будет странно).
Кодировка в браузере какая по умолчанию стоит?
Про collation понятно.

В браузере 1251.
Аватара пользователя
mrskhris
Маньяк
Сообщения: 2082
Зарегистрирован: 06 июн 2005, 19:37
Откуда: RU - KY - NW - CQ
Контактная информация:

Сообщение mrskhris »

Странно, у меня при таком же раскладе все нормально работает.
А в my.cnf никаких странных "SET names" не стоит?

Еще раз на всякий случай переспрошу - когда открывается интерфейс к базе, какая кодировка используется браузером? Последние версии phpMyAdmin все автоматически на utf-8 переключают, что делу не всегда помогает.
Аватара пользователя
mrskhris
Маньяк
Сообщения: 2082
Зарегистрирован: 06 июн 2005, 19:37
Откуда: RU - KY - NW - CQ
Контактная информация:

Сообщение mrskhris »

Вот еще куда стоит заглянуть, по-моему:
(это настройки для phpMyAdmin)


$cfg[DefaultCharset] string
Default character set to use for recoding of MySQL queries. This must be enabled and it's described by $cfg['AllowAnywhereRecoding'] option.
You can give here any character set which is in $cfg['AvailableCharsets'] array and this is just default choice, user can select any of them.
$cfg[AllowAnywhereRecoding] boolean
Allow character set recoding of MySQL queries. You need recode or iconv support (compiled in or module) in PHP to allow MySQL queries recoding and used language file must have it enabled (by default only these which are in Unicode, just to avoid losing some characters).

Setting this to TRUE also activates a pull-down menu in the Export page, to choose the character set when exporting a file.
$cfg[RecodingEngine] string
You can select here which functions will be used for character set conversion. Possible values are:

* auto - automatically use available one (first is tested iconv, then recode)
* iconv - use iconv or libiconv functions
* recode - use recode_string function

Default is auto.
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

Сообщение Earl Grey »

mrskhris писал(а):Странно, у меня при таком же раскладе все нормально работает.
А в my.cnf никаких странных "SET names" не стоит?

Еще раз на всякий случай переспрошу - когда открывается интерфейс к базе, какая кодировка используется браузером? Последние версии phpMyAdmin все автоматически на utf-8 переключают, что делу не всегда помогает.
Я неправильно сначала вопрос про браузер понял, думал о юзер интерфейсе. А в phpMyAdmin таки да, utf-8 по умолчанию.
Аватара пользователя
mrskhris
Маньяк
Сообщения: 2082
Зарегистрирован: 06 июн 2005, 19:37
Откуда: RU - KY - NW - CQ
Контактная информация:

Сообщение mrskhris »

Earl Grey писал(а): Я неправильно сначала вопрос про браузер понял, думал о юзер интерфейсе. А в phpMyAdmin таки да, utf-8 по умолчанию.

А если его насильно переключить в cp1251, что-нибудь меняется?
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

Сообщение Earl Grey »

mrskhris писал(а):
Earl Grey писал(а): Я неправильно сначала вопрос про браузер понял, думал о юзер интерфейсе. А в phpMyAdmin таки да, utf-8 по умолчанию.

А если его насильно переключить в cp1251, что-нибудь меняется?
конечно! кракозяблики становятся более кучерявыми :)
Аватара пользователя
mrskhris
Маньяк
Сообщения: 2082
Зарегистрирован: 06 июн 2005, 19:37
Откуда: RU - KY - NW - CQ
Контактная информация:

Сообщение mrskhris »

Если в форуме все отображается нормально, то дело, видимо, в интерфейсе к базе.
Я использую phpMyAdmin и Firefox со следующими настройками (пардон за повторение, просто чтобы уж все в один постинг свести):

Firefox: кодировка Cyrillic (Windows-1251).

phpMyAdmin: в config.inc.php

$cfg['DefaultCharset'] = 'latin1';
$cfg['RecodingEngine'] = 'iconv';


mySQL:
MySQL charset: cp1252 West European (latin1)
MySQL connection collation: utf8_unicode_ci
character set client latin1
character set connection utf8
character set database latin1
character set results latin1
character set server latin1
character set system utf8


Все показывается нормально, можно редактировать данные без проблем. Экспортируется из базы тоже без проблем.
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

Сообщение Earl Grey »

спасибо, я посмотрю
Ответить