Учитывая, что вы отправляете HTML с соответствующими заголовками типа контента, я предполагаю, что вы запускаете это через веб-сервер Apache. Если нет, то, пожалуйста, не обращайте на меня внимания, но в настройках сервера может быть настройка для этого ...
Я уже сталкивался с этой проблемой раньше, и абсолютно все должно быть в режиме UTF8, чтобы оно работало.
В частности, здесь, я подозреваю, вам нужно создать файл .htaccess
в том же каталоге, что и ваш скрипт, содержащий что-то вроде этого:
AddDefaultCharset UTF-8
Перезапуск Apache, очевидно.
Еще одно замечание: если вы планируете использовать базу данных MySQL, вам также необходимо убедиться, что соединение закодировано в формате UTF8, выполнив следующую команду SQL после соединения:
SET NAMES utf8