преобразовать текст из UTF в читаемый текст - PullRequest
0 голосов
/ 25 июня 2011

У меня есть некоторый UTF-текст, начинающийся с "ef bb bf".Как я могу превратить это сообщение в текст, читаемый человеком?vim, gedit и т. д. интерпретируют файл как обычный текст и показывают весь ef-текст, даже когда я заставляю их читать файл с несколькими utf-кодировками.Я попробовал инструмент «перекодировать», он не работает.Даже php utf8_decode не смог произвести ожидаемый текстовый вывод.

Пожалуйста, помогите, как я могу преобразовать этот файл, чтобы я мог его прочитать?

Ответы [ 2 ]

1 голос
/ 25 июня 2011

ef bb bf - это UTF-8 BOM .Удалите первые три байта и попробуйте utf8_decode остаток.

$text = "\xef\xbb\xbf....";
echo utf8_decode(substr($text, 3));
0 голосов
/ 25 июня 2011

Это UFT8, UTF16, UTF32? Это имеет большое значение! Я предполагаю, что вы хотите преобразовать текст в старомодный ASCII (все символы имеют длину 1 байт).

UTF8 уже должен быть (по крайней мере, в основном) читаемым, поскольку он использует 1 байт для стандартных символов ASCII и использует только несколько байтов для специальных / многоязычных символов (коды символов> 127). Похоже, ваш файл не в формате UTF8, или вы уже сможете его прочитать! Интернет-контент обычно UTF-8.

Коды символов Unicode такие же, как у старых кодов ASCII до 127.

UTF16 и UTF32 всегда используют 2 и 4 байта соответственно для кодирования каждого символа, независимо от того, могут ли эти символы быть представлены одним байтом или нет. Это делает его нечитаемым, если текстовый редактор ожидает UTF8.

Gedit поддерживает UTF16 и UTF32, но вам нужно явно добавить эти кодировки в открытое диалоговое окно (и, возможно, выбрать их явно вместо использования автоопределения)

...