如何使用iconv将US-ASCII转换为UTF-8?

如何使用iconv将US-ASCII转换为UTF-8?,utf-8,coldfusion,character-encoding,ascii,iconv,Utf 8,Coldfusion,Character Encoding,Ascii,Iconv,我正在尝试将多个文件从US-ASCII批量转换为UTF-8。我已经将问题缩小到iconvcomnand,尽管我对堆栈溢出进行了最好的清理,但我似乎使用了错误的代码。知道这里出了什么问题吗 检查编码: file -i accounting.cfm accounting.cfm: text/html; charset=us-ascii 尝试使用iconv转换: iconv -f us-ascii -t utf-8 accounting.cfm > accounting.cfm.recode

我正在尝试将多个文件从US-ASCII批量转换为UTF-8。我已经将问题缩小到
iconv
comnand,尽管我对堆栈溢出进行了最好的清理,但我似乎使用了错误的代码。知道这里出了什么问题吗

检查编码:

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站点。当我通过升华调出用编码保存的文件时,我的外来字符集会正确显示。知道我做错了什么吗?谢谢。

所以我想起来了。ColdFusion确实需要BOM表才能正常工作,除非您希望在每个可能包含非ASCII字符的CFM文件的顶部放置一个
标记。参考:


我是一个优秀的用户,所以我只需进入文件->使用编码保存,UTF-8使用BOM,它就可以在没有标签的情况下工作。然后,我很高兴我的大部分时间都在Python 3中度过

ASCII文件已经是UTF-8文件,因为UTF-8向后兼容<代码>文件打印最小公分母;你只需要知道这意味着什么。投票关闭为不可生产。另存为UTF-8可能会在文件开头添加BOM。这三个字节故意将其转换为US-ASCII以外的内容。它不是“乱码”,您只是使用了一个不正确或配置错误的工具来检查它。您对更好的工具或使用
文件
命令有什么建议吗?感谢您的回复。如果您仍然需要帮助,请参阅堆栈溢出以获取提示,至少是关于如何清晰地表达定义明确的问题。谢谢,这是我第一次深入研究字符编码。