【发布时间】:2016-08-31 08:51:24
【问题描述】:
我正在尝试将多个文件从 US-ASCII 批量转换为 UTF-8。我已将问题缩小到iconv comnand,尽管我对 Stack Overflow 进行了最佳搜索,但我似乎使用错误。知道这里出了什么问题吗?
检查编码:
file -i accounting.cfm
accounting.cfm: text/html; charset=us-ascii
尝试使用iconv进行转换:
iconv -f us-ascii -t utf-8 accounting.cfm > accounting.cfm.recode
检查生成文件的编码:
file -i accounting.cfm.recode
accounting.cfm.recode: text/html; charset=us-ascii
似乎生成的文件仍然是为 US-ASCII 字符集编码的。当我通过 Sublime 将单个文件保存为 UTF-8(使用编码保存)时,它会将字符集显示为 utf-8。我知道 US-ASCII 是 UTF-8 的一个子集,但是当我在浏览器中打开 US-ASCII 编码文件时,我得到了垃圾字符(如果加载到浏览器中,则会出现可怕的菱形问号)。这适用于旧的 ColdFusion 站点。当我通过 Sublime 调出使用编码保存的文件时,我的外来字符集正确显示。任何想法我做错了什么?谢谢。
【问题讨论】:
-
ASCII 文件已经是 UTF-8 文件,因为 UTF-8 向后兼容。
file打印最小公分母;你只需要知道这意味着什么。投票结束时无法重现。 -
另存为 UTF-8 可能会在文件开头添加 BOM。这三个字节故意把它变成 US-ASCII 以外的东西。它不是“乱码”,您只是使用了不正确或配置错误的工具来检查它。
-
对更好的工具或
file命令的使用有什么建议吗?感谢您的回复。 -
如果您仍然需要帮助,请参阅 Stack Overflow
character-encodingtag wiki 以获取提示,至少有关如何表达明确定义的问题。 -
谢谢,这是我第一次研究字符编码。
标签: utf-8 coldfusion character-encoding ascii iconv