Есть странная проблема в PHP земли. Вот урезанный пример:
$handle = fopen("file.txt", "r");
while (($line = fgets($handle)) !== FALSE) {
echo $line;
}
fclose($handle);
Например, если у меня есть файл, который выглядит следующим образом:
Lucien Frégis
Затем приведенный выше код, запускаемый из командной строки, выдает то же имя, но вместо острой ошибки я получаю:
Lucien FrÚgis
Глядя на шестнадцатеричный дамп файла, я вижу, что рассматриваемый байт - это E9, что я и ожидал бы для острой точки в кодировке php по умолчанию (ISO-8859-1), что подтверждается выводом текущего значения default_charset .
Есть мысли?
EDIT:
Как и предполагалось, я проверил кодовую страницу Windows и, по-видимому, ее 850, которая устарела (но объясняет, почему 0xE9 отображается таким, какой он есть ...)