【问题标题】:utf-8 file displays doubled charactersutf-8 文件显示双倍字符
【发布时间】:2010-10-07 18:12:14
【问题描述】:

生成的 utf-8 文件在终端中正确显示:

但不在 Firefox 或 gedit 中:

字符好像被怪异的加倍了?

文件: http://maestric.com/shared/other/2004_10_14.txt

你知道它有什么问题吗?

【问题讨论】:

  • 你应该显示一些正在写入文件的代码
  • 当我访问上面的 URL 时,Web 服务器没有发送格式正确的 UTF-8 数据。似乎每个有效的 UTF-8 编码字符序列的末尾都附加了一个额外的空八位字节。因此,要么原始文件本身已损坏,要么网络服务器发送的文件数据错误。
  • 所以在终端里没问题,只是因为这个“额外的空八位字节”没有显示?如果是这样,你已经回答了这个问题,我将不得不问一个新的关于如何删除它的问题:)

标签: linux unicode


【解决方案1】:

它似乎是 UTF-16。你确定你的语言环境和终端是 UTF-8 吗?

您是否在文件上尝试了“od”,或者在十六进制查看器中查看它?永远不要相信你的终端,你必须查看字节来确定。

例如

# od -c -x 2004_10_14.txt  | head
0000000  \0   H  \0   e  \0   u  \0   r  \0   e  \0      \0   d  \0   e
        4800 6500 7500 7200 6500 2000 6400 6500
0000020  \0      \0   d  \0 303 251  \0   b  \0   u  \0   t  \0      \0
        2000 6400 c300 00a9 0062 0075 0074 0020

【讨论】:

  • 谢谢!看来我首先要清理的文件不是实际的文本文件,而是中间带有一些 UTF-16 的二进制文件。这个“od”工具会很有帮助,谢谢。
猜你喜欢
  • 2011-06-15
  • 2015-04-11
  • 1970-01-01
  • 2015-02-23
  • 2011-11-04
  • 2013-04-09
  • 2012-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多