【问题标题】:How Can I Convert From US-ASCII to UTF-8 with iconv?如何使用 iconv 从 US-ASCII 转换为 UTF-8?
【发布时间】: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-encoding tag wiki 以获取提示,至少有关如何表达明确定义的问题。
  • 谢谢,这是我第一次研究字符编码。

标签: utf-8 coldfusion character-encoding ascii iconv


【解决方案1】:

所以我想通了。 ColdFusion 确实需要 BOM 才能正常工作,除非您想在每个可能包含非 ASCII 字符的 CFM 文件的顶部放置一个<cfprocessingdirective pageencoding="utf-8"> 标签。参考:

https://forums.adobe.com/thread/930550 https://www.adobe.com/support/coldfusion/internationalization/internationalization_cfmx/internationalization_cfmx3.html

我是 Sublime 用户,所以我只是转到 File -> Save With Encoding,UTF-8 with BOM,它可以在没有标签的情况下工作。然后我很高兴我大部分时间都在 Python 3 中度过!

【讨论】:

    猜你喜欢
    • 2021-03-08
    • 2012-07-03
    • 2012-10-29
    • 2010-09-22
    • 1970-01-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 2011-05-20
    相关资源
    最近更新 更多