В общем дело такое.
В HTML unicode файлы без метки BOM отображаются карякозябрами, исправить это можно сохранив файл с меткой BOM.
В PHP unicode файлы если поставить метку BOM, команда session_start в начале файла выдаёт ошибку: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at K:\home\mysite\www\index.php:1) in K:\home\mysite\www\index.php on line 2
Исправить эту ошибку можно сохранив файл без метки BOM, но все русские символы превратятся в карякозябры.
Как угодить обоим?
Pavel_White, принудительный header с кодировкой в РНР - не лучшая практика. Где-нибудь обязательно отвалится. Для подобных вещей существуют настройки веб-сервера.
Adamos, это решение временное, нужно выполнить небольшой заказ, я больше никогда не увижу клиента. Тем более что сайт - не крупный проект, а одноразовый так сказать.
Но реальное решение мне интересно, т. к. я должен развиваться и следующие проекты делать всё лучше и лучше...
Pavel_White, если хотите развиваться - не позволяйте себе оправдывать плохое решение тем, что это временно.
Как известно, временно - это всего на один день меньше, чем постоянно.
На моей памяти ВОМ был действительно нужен только в одном случае: для компиляции UTF-8 исходников в ВижуалСтудии, криворукие программисты которой не справились с автоматическим распознанием кодировки и не осилили сделать настройку, которая позволила бы пользователю задать кодировку принудительно.
В вебе про этот костыль лучше просто сразу забыть. Если проблемы с ним - значит, вы что-то неправильно делаете.
Pavel_White, вас уже ткнули носом в то, что вы делаете неправильно, я не видел необходимости повторяться.
Но если вы настаиваете: кодировка определяется тегом meta и заголовками, отправленными сервером. Никаких ВОМ в этом процессе быть не должно.
Поставьте нормальный сервер (нет, не Опенсервер), настройте на нем нормальный Апач или Нджинкс (подробнейше разжеванных инструкций - полон интернет) и не занимайтесь бегом в мешках по граблям.
Pavel_White, оскорбление? Где?
Я не знаю, что именно вы используете, отталкиваюсь от того, что у вас виндовские пути и кривая кодировка. Как настраивается кодировка на нормальном сервере - гуглится моментально. Если вы откопали какой-нибудь Денвер - см. выше.
Pavel_White, необязательно на компьютер, достаточно в виртуалку.
С проблемой вы можете столкнуться снова, но у нее будет известное и много раз разобранное на форумах и Q&A-сайтах решение, а не гадание на нестандартной гуще.
Pavel_White, с чего бы? LAMP - проверенное и до сих пор много где работающее решение. За единственным исключением - что на апачевский .htaccess в произвольной папке уже не стоит полагаться, чтобы не было проблем при миграции на чистый Nginx. А уж для разработки - самое то.
Лампу даже необязательно настраивать самому, можно просто поднять, например, ScotchBox в Vagrant.
Moskus, носом тыкают животных, туда, куда оно нагадило, в литературе выражение "ткнуть носом" используется часто как оскорбление, хоть и неприметное, но обидное)
Pavel_White, ну, это уже полдороги к "сама придумала - сама обиделась". В интернет-общении быть столь мнительным не стоит, только испортите отношения на ровном месте.