Как сохранить русские символы в файле с кодировкой UTF-8

Итак, у меня есть файл PHP с несколькими строками текста на разных языках. Для большинства языков, таких как французский или испанский, я просто ввожу символы.

У меня проблема с русскими буквами. Файл PHP закодирован в UTF-8, как я могу убедиться, что русские символы и сохраняются правильно, и правильно отображаются на выходной веб-странице... Это просто случай вставки текста в файл PHP, или это есть способ гарантировать, что символы будут правильно сохранены в файле - например, преобразование его в HTML-подобную нотацию?

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

Я использую Notepad++ в Windows для редактирования файла PHP.

Спасибо!


person Sam G    schedule 17.02.2013    source источник


Ответы (4)


если ваш тип документа — html, объявите <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>, но если ваш тип документа — xhtml, объявите <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />.

Никогда не предполагайте, что конечный пользователь будет действовать правильно во время ваших проектов

Если у вас уже есть некоторые документ, отредактируйте метатег вашего документа для объявления кодировки и используйте кодировку notepad++>конвертируйте в UTF-8 без BOM, сохраните документ, смело продолжайте использовать свою многоязычную структуру с этого момента.
< Тег br />php не имеет отношения к вашему вопросу, поскольку вы не упоминаете ни о каких настройках символов базы данных.

person Andre Chenier    schedule 17.02.2013
comment
Спасибо. Строки не хранятся ни в какой базе данных, только в файле PHP, поэтому я ничего не упомянул о базах данных. :) - person Sam G; 20.02.2013

Если вы хотите сообщить браузерам свою кодировку, поместите ее в тег <header>:

<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>

Или короткая версия

<meta charset='utf-8'>

Этого должно быть достаточно, чтобы русские символы правильно отображались на веб-странице.

person vikingmaster    schedule 17.02.2013

В UTF-8 нет разницы между латинскими и кириллическими символами. Оба являются просто последовательностями байтов. Настройте свой сервер или PHP-скрипт для отправки Content-Type: text/html;charset=utf, и вы будете в безопасности.

У вашего редактора могут возникнуть проблемы, если используемый вами шрифт не содержит русских символов. Тогда выберите другой шрифт.

И, пожалуйста, игнорируйте рекомендации элемента <meta>. Вам это не нужно: это бесполезно, когда ваши HTTP-заголовки верны, и может быть вредно, если они неверны.

person fuxia    schedule 17.02.2013

Ну, вы должны проверить 2 вещи

  • Чтобы гарантировать, что *.php является файлом UTF-8, я использую PSPad. Если файл не в UTF-8, я сохраняю его так: http://stepolabs.com/upload/utf-8.png
  • Тогда ваш сайт должен иметь кодировку UTF-8 в теге <meta>;

    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    ... подробнее о метатегах.

Наконец, если все сделано правильно - (формат и метадекларация) все должно отображаться правильно!

person Stepo    schedule 17.02.2013