Страница 1 из 1

MySQl character set change

Добавлено: 26 дек 2006, 00:24
Earl Grey
Хе хе,

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

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

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

Как это лечится?

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

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

В браузере 1251.

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

Еще раз на всякий случай переспрошу - когда открывается интерфейс к базе, какая кодировка используется браузером? Последние версии phpMyAdmin все автоматически на utf-8 переключают, что делу не всегда помогает.

Добавлено: 26 дек 2006, 10:39
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.

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

Еще раз на всякий случай переспрошу - когда открывается интерфейс к базе, какая кодировка используется браузером? Последние версии phpMyAdmin все автоматически на utf-8 переключают, что делу не всегда помогает.
Я неправильно сначала вопрос про браузер понял, думал о юзер интерфейсе. А в phpMyAdmin таки да, utf-8 по умолчанию.

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

А если его насильно переключить в cp1251, что-нибудь меняется?

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

А если его насильно переключить в cp1251, что-нибудь меняется?
конечно! кракозяблики становятся более кучерявыми :)

Добавлено: 27 дек 2006, 01:05
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


Все показывается нормально, можно редактировать данные без проблем. Экспортируется из базы тоже без проблем.

Добавлено: 27 дек 2006, 09:12
Earl Grey
спасибо, я посмотрю