0

我有一些以“ef bb bf”开头的 UTF-Text。如何将此消息转换为人类可读的文本?vim、gedit 等将文件解释为纯文本并显示所有 ef 文本,即使我强制他们使用多个 utf 编码读取文件。我尝试了“重新编码”工具,它不起作用。甚至 php 的 utf8_decode 也无法产生预期的文本输出。

请帮忙,我怎样才能转换这个文件以便我可以阅读它?

4

2 回答 2

1

ef bb bfUTF-8 BOM。剥离前三个字节并尝试utf8_decode剩余部分。

$text = "\xef\xbb\xbf....";
echo utf8_decode(substr($text, 3));
于 2011-06-25T19:12:24.957 回答
-1

是 UFT8、UTF16、UTF32 吗?这很重要!我假设您想将文本转换为老式的 ASCII(所有字符都是 1 个字节长)。

UTF8 应该已经(至少大部分)可读,因为它对标准 ASCII 字符使用 1 个字节,而对特殊/多语言字符(字符代码 > 127)仅使用多个字节。听起来您的文件不是 UTF8,或者您已经能够读取它!在线内容通常是 UTF-8。

Unicode 字符代码与最多 127 位的旧 ASCII 代码相同。

UTF16 和 UTF32 总是分别使用 2 和 4 个字节来编码每个字符,无论这些字符是否可以用单个字节表示。如果文本编辑器需要 UTF8,这将使其不可读。

Gedit 支持 UTF16 和 UTF32,但您需要在打开的对话框中显式“添加”这些编码(并且可能显式选择它们而不是使用自动检测)

于 2011-06-25T19:12:20.760 回答