Отображать текст в кодировке UTF-8 без неправильных символов - PullRequest
0 голосов
/ 14 октября 2019

У меня есть текстовый файл с содержимым, которое я хочу отобразить на своей веб-странице. Я загружаю контент следующим образом:

$txt = file_get_contents('new.txt');

Когда я отображаю контент с помощью charset=UTF-8, он выглядит следующим образом:

enter image description here

Когда я использую charset=ISO-8859-1, вместо этого это выглядит так:

enter image description here

Я хочу, чтобы текст выглядел как второй пример, но покаиспользуя charset=UTF-8 вместо ISO-8859-1. Как я могу преобразовать текст, чтобы он отображался правильно?

1 Ответ

1 голос
/ 14 октября 2019

Вы можете работать с необработанными данными или конвертировать на лету.

Если вы планируете хранить все новые данные в формате UTF-8, тогда пакетное преобразование всех старых данных будет болееблагоприятный. Не смешно иметь смешанную кодировку в ваших исходных данных. Вы можете сослаться на этот вопрос , чтобы найти совет по команде пакетного преобразования.

С другой стороны, если вы собираетесь хранить ввод и хранение в кодировке ISO-8859-1, единственноеВы можете конвертировать документ на лету.

$txt = iconv('iso-8859-1', 'utf-8', file_get_contents('new.txt'));

Или, если ваши исходные файлы имеют смешанную кодировку iso-8859-1 и другую неизвестную кодировку, вы можете добавить флаг //IGNORE, чтобы избежать ошибки:

$txt = iconv('iso-8859-1', 'utf-8//IGNORE', file_get_contents('new.txt'));

Для отображения страницы каждый раз требуется больше вычислительной мощности. Поэтому всегда предпочтительно преобразовывать необработанный контент (если это невозможно для вашей ситуации).

...