Windows 到 Linux utf-8 文件
我在 Windows 中有一个 UTF-8 编码的文件,当我在 Windows 下使用它时,它显示一切正确,但是当我在 Linux 中复制该文件时,Unicode 字符是乱码。该文件是纯文本文件。我怎样才能让这个文件在Linux中可读,或者我怎样才能正确复制它?
提前致谢
I have a file UTF-8 encoding in windows, and when i use it under windows it shows everithing right, but when i copy the file in Linux, the Unicode characters are giberish. The file is plain textfile. How can i get this file to be readable in linux, or how can i copy it properly??
thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
看起来像 Apache/PHP 问题
您是否通过 PHP 的内置 htmlspecialchars 方法(或类似方法)运行字符串?如果是这样,您可能需要将其编码切换为 UTF8。
尝试使用
htmlspecialchars($mytext, ENT_COMPAT, 'UTF-8')
,而不是htmlspecialchars($mytext)
以下(我之前的答案)是不正确的,正如 Michael Burr 指出的那样,UTF-8 不需要或不使用 BOM。
Looks like an Apache/PHP issue
Are you running your strings through PHP's built-in htmlspecialchars method (or similar)? If so, you may need to switch its encoding to UTF8
Instead of
htmlspecialchars($mytext)
, try usinghtmlspecialchars($mytext, ENT_COMPAT, 'UTF-8')
Note the following (my previous answer) is incorrect, as Michael Burr notes, UTF-8 doesn't need or use the BOM.
确保您已以二进制模式传输文件。也可以尝试 iconv。
Make sure you have transfered the file in binary mode. Also try iconv.
文件本身没问题。在将文本发送到浏览器之前,管道中的其他东西正在搞乱文本。在应用程序中的各个点回显文本,以查明哪个操作破坏了它。
The file itself is fine. Something else in the pipe is screwing up the text before it gets sent to the browser. Echo the text at various points in the app to pinpoint which operation is breaking it.