1

Тема: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

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

Считаю, что лучшим русскоязычным материалом на данный момент при решении вышеобозначенных проблем является статья "MySQL 4.1+ и любые проблемы с русскими буквами" c PHPClub.RU.

До этого момента мы отправляли всех озабоченных данной проблемой читать эту статью, но большинство, возвращалось со словами "не помогло...", "я сделал как написано в статье, но знаки ???? все равно остались...", "я сделал все как там написано, но ничего не вышло..." и т.п. Поэтому было решено поместить данную статью на сайт PHP-MYADMIN.RU и при необходимости её дополнять, уточнять, корректировать с учетом вопросов участников форума и реалиями настоящего.

Все замечания, пожелания, рекомендации по данной статье прошу высказывать в этом топике.

Адрес статьи на PHP-MYADMIN.RU: "MySQL и проблемы с русскими буквами"

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

2

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

А куда с вопросами по статье обращаться?

3

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

Lokki пишет:

А куда с вопросами по статье обращаться?

Все сюда

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

4

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

Тада так:
"... Где кодировка - та кодировка, в которой у вас (по вашему мнению) данные. Например, для русской Windows кодировки (windows-1251) это будет cp1251, для KOI8-R – koi8r, для UTF-8 – utf8 и так далее..."
А как далее? Где взять список кодировок, которые можно использовать, и не просто список, а именно такой, который потом можно перибирать? Например, iconv --list выводит список, в котором присутствуют и WINDOWS-1251 и CP1251. Как с этим быть?

5

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

DrHyder пишет:

А как далее? Где взять список кодировок, которые можно использовать, и не просто список, а именно такой, который потом можно перибирать?

Например, выполнить sql-запрос: "SHOW CHARACTER SET;"

Дополнительную информацию о синонимах кодировок можно получить на оф. сайте mysql.com:
Кодировки и сопоставления, которые поддерживает MySQL (eng)

Нет неразрешимых проблем, есть неприятные решения. (Э. Борн)

6

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

Спасибо.

7

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

Lokki
Подскажите, пожалуйста.

Попробуйте в начале вашего скрипта, но после соединения, выполнить SQL-запрос "SET NAMES кодировка". Где кодировка - та кодировка, в которой у вас (по вашему мнению) данные. Например, для русской Windows кодировки (windows-1251) это будет cp1251, для KOI8-R – koi8r, для UTF-8 – utf8 и так далее. В дальнейшем она будет упоминаться как "кодировка".

Можно ли выполнить эту проверку следующим образом?

<?
global $db;

// соединение
$db = mysql_connect("localhost","root","12345");
mysql_select_db("test", $db);

// установка кодировки
mysql_query("SET NAMES cp1251", $db);

// проверка кодировки
$sql="Select * from news where id = 100";
$result = mysql_query($sql, $db);
echo mysql_result($result,0,'body');
?>

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

8

Re: Публикация статьи с PHPClub.RU "MySQL и проблемы с русскими буквами"

Herr Daniel
Да, можно.

ВКонтакте Facebook Twitter