Какая кодировка вашего файла? Это тоже должно быть UTF8. Какова кодировка по умолчанию вашего http-сервера? Это также должно быть UTF-8.
Кодирование работает только если:
- файл закодирован правильно
- сервер сообщает, какая кодировка доставленного файла.
При работе с базами данных вам также необходимо установить правильную кодировку для полей базы данных и способ связи клиента MySQL с сервером (см. mysql_set_charset()
). Одних только полей недостаточно, потому что ваш клиент MySQL (в данном случае PHP) может быть настроен на ISO по умолчанию и переинтерпретировать данные. Таким образом, вы получаете UTF8 DB -> ISO-клиент ->, введенный в PHP-скрипт UTF8. Неудивительно, почему это испортилось в конце :-)
Как подать файл с правильной кодировкой?
header('Content-type: text/html; charset=utf-8')
это одно из решений
Файл .htaccess, содержащий AddDefaultCharset UTF-8
, является еще одним
Тип мета-контента HTML тоже может работать, но всегда лучше отправлять эту информацию с помощью заголовков HTTP.
PS: вы также должны использовать mb_strlen()
, потому что strlen()
в строках UTF8, вероятно, будет сообщать больше, чем реальная длина.
person
Capsule
schedule
20.04.2011