Проблема с UTF8

Тема в разделе "PHP Pro", создана пользователем DIAgen, 16 окт 2008.

Статус темы:
Закрыта.
  1. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Суть проблемы в том что скрипты написаны в кодировки UTF8, на локалхосте все ок, после того как загружаю их на сервак у меня вылазиет ошибка установки заголовков. Нашел только одно решение открывать написанный фаил в HEX редакторе и стирать первые байты файла. Может кто нибудь сможет предложить другой вариант...

    Не помогает даже

    PHP:
    ob_start ();
    ob_implicit_flush );
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    1. Добавить adddefaultcharset в .htaceess
    2. Сохранять файлы без установки BOM.
    3. Получить бан за размещение топика в не том разделе.
     
  3. Avtandil

    Avtandil Создатель

    Регистр.:
    30 сен 2006
    Сообщения:
    30
    Симпатии:
    24
    Внимательно редактируй PHP-файлы в кодировке UTF-8 в Блокноте, потому что он добавляет в начало файла 3 байта, которые нужны ему (Блокноту) для распознавания этой самой кодировки. Но если уж всё-таки редактируешь в Блокноте, то перед заливкой на сервер убедись, что PHP-файлы, устанавливающие заголовки, начинаются с '<?'.
    Я тоже сталкивался с такой проблемой. Но нашёл простое решение: заливал файлы FAR-ом, а перед заливкой при помощи встроенного в FAR редактора удалял первые 3 байта в каждом PHP-файле.
     
  4. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    Первые три байта, которые добавляет "Блокнот" в файл, желательно всегда удалять, т.к. они вносят путаницу и сбивают некоторые программы, работающие с этим файлом (вспомним IE6 с его Quirks mode). Не знаю, для чего их придумали (возможно для определения кодировки файла, но чаще всего оно не нужно), но везде больше рекомендуют их удалять, чем оставлять.

    P.S. вместо блокнота лучше поставить другой редактор с подсветкой синтаксиса (помогает обнаружить разные глупые ошибки, типа не поставил ";" в конце или не закрыл скобку). Сам юзаю Notepad++, легко переключается в разные кодировки, есть преобразование из одной в другую, подсветка синтаксиса для большого количества языков.
     
  5. DIAgen

    DIAgen Постоялец

    Регистр.:
    30 окт 2006
    Сообщения:
    134
    Симпатии:
    72
    Как раз пользуюсь Notepad++, конечно ZEND прикольная вещь, но тормозит жестко.

    А на счет проблемы, в .htaccess вставил AddDefaultCharset UTF-8 и уже без разницы есть эти три байта иль нету.
     
  6. HatoL

    HatoL

    Регистр.:
    5 фев 2008
    Сообщения:
    206
    Симпатии:
    36
    всяко лучше когда этих трех байтов нету, поэтому перед кодингом поставь Кодировки -> Кодировать в UTF-8 (без BOM) или если файл уже готов Кодировки -> Преобразовать в UTF-8 без BOM
     
Статус темы:
Закрыта.