2

我在 Windows 中有一个文件 UTF-8 编码,当我在 Windows 下使用它时,它显示一切正确,但是当我在 Linux 中复制文件时,Unicode 字符是乱码。该文件是纯文本文件。我怎样才能让这个文件在 linux 中可读,或者我怎样才能正确复制它?

提前致谢

4

3 回答 3

2

看起来像 Apache/PHP 问题

您是否通过 PHP 的内置 htmlspecialchars 方法(或类似方法)运行字符串?如果是这样,您可能需要将其编码切换为 UTF8

而不是htmlspecialchars($mytext),尝试使用htmlspecialchars($mytext, ENT_COMPAT, 'UTF-8')


请注意以下(我之前的回答)是不正确的,正如 Michael Burr 所指出的,UTF-8 不需要或使用 BOM。

如果只是文本,则可能缺少字节顺序标记 (BOM),或者使用不正确的 BOM 进行编码。

如果它不正确,Linux 阅读器可能会尊重它,但您的 Windows 阅读器会忽略它。尝试在 Notepad++ 中重新打开文件并重新保存。Notepad++ 在格式菜单中有很多关于保存 UTF-8 文件的选项。

于 2010-03-17T23:54:39.560 回答
1

确保您已以二进制模式传输文件。也试试iconv。

于 2010-03-17T23:59:07.703 回答
0

文件本身很好。在将文本发送到浏览器之前,管道中的其他东西正在搞砸文本。在应用程序的各个点回显文本,以查明是哪个操作破坏了它。

于 2010-03-18T01:08:24.960 回答