Странная ошибка с кодировкой mysql - PullRequest
0 голосов
/ 02 мая 2011

У меня есть сайт osTube. Все файлы сохранены в UTF-8. Все таблицы созданы с помощью utf8 utf8_unicode_ci, и все поля имеют одинаковую кодировку.

При подключении к БД добавлена ​​функция:

mysql_set_charset('utf8',$this -> connection);

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

Я считаю, что Zend Debugger показывает содержимое переменных не читаемым, но кодировкой отладки является UTF-8. Если я удалю строку:

mysql_set_charset('utf8',$this -> connection);

На сайте я вижу нечитаемый текст, но если в браузере установить кодировку Windows-1251 - текст начинает читаться. И Zend Debugger покажет обычный текст, и regexp начнут работать. Но в браузере я вижу только «?????».

Что это?

1 Ответ

0 голосов
/ 02 мая 2011

Вам не ясно, где вы используете регулярные выражения? В PHP вы можете включить поддержку UTF-8 для расширения preg, используя модификатор u.

См .: http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...