Проблема с кодировкой при чтении файла браузером.

zig

Новичок
Добрый день.

Суть проблемы такова. Я сделал небольшой чат на PHP без использования базы данных. Когда пользователь отправляет сообщение, PHP записывает его в конец текстового файла. А аякс на клиенте периодически читает этот файл GET'ом, вот и все дела.
Проблема с кодировкой. PHP-скрипт, html-страница и сам текстовый файл сохранены в UTF-8 без BOM. Кроме того, в хэде страницы прописана мета charset=utf-8. И, тем не менее, русский текст из файла браузер воспроизводит каракулями - РџСЂРёРІРµС. Уже всё перепробовал, не знаю, что делать. В сам файл всё записывается правильно.

PHP:
// Это JavaScript, читающий текстовый файл с сервера
function readFile(fname, success) {
  var xhr = new XMLHttpRequest();
  xhr.open("GET", fname, true);
  xhr.onreadystatechange = function() {
  if (this.readyState == 4) {
    if (this.status == 200) {
      success(this.responseText);
  }}};
  xhr.send(null);
}
PHP:
// А это PHP, пишущий сообщения в файл
function write($msg) {
    $f = fopen("chat.txt", 'a');
    fwrite($f, $msg."\r\n");
    fclose($f);
}
 

zig

Новичок
Подозреваю, что проблема где-то в заголовках запроса.
 

bars80081

Новичок
принудительно выставьте заголовок на отдачу

PHP:
header('Content-Type: text/html; charset=utf-8');
и саму страницу чата, и перед выдачей ответа для аякса
 
Сверху