usecase: Создаем на веб-сервере текстовой файл с содержимым на кириллице в кодировке utf-8. Если этому файлу дать расширение .html, то в браузере русские символы нормально отображаются. Если же переименовать в .php, то русские символы превращаются в "вопросики" (????? ?? ????).
В то же время, если в .php файл текст выводить не спулом, а через <? echo "кириллица"; ?> то текст не "корежится".
Подскажите, в чем может быть проблема? В каком месте может происходить потеря одного байта кодировки?
FanatPHP: Это как-раз относится именно к Вам. И прошу впредь без оскорблений!
А BOM в PHP это чреватое проблемами с отправкой заголовков из PHP и не только с ними, если в каком-то из включаемых файлов закрыть PHP, "?>" и не сделав буферизацию вывода, этот 1 байт от BOM улетит вывод, тем самым помешав постановки заголовка и вы схватите Warning... А если весь проект у Вас в UTF-8 без BOM, а верстальщик какой-нибудь partial шаблон залил с UTF-8 с BOM, вот тогда будет боль, если нормальной буферизации нет...
В nginx.conf стоит "charset utf-8", и добавление первой строчкой <? header("content-type:text/html;charset=utf8") ?> тоже не помогает. Пропажа байта происходит ДО вывода на клиент.