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

时间:2016-05-05 14:06:26

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

我正在尝试将多个文件批量转换为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(Save With Encoding)时,它将charset显示为utf-8。我知道US-ASCII是UTF-8的一个子集,但是当我在浏览器中显示US-ASCII编码文件时,我会得到垃圾字符(如果在浏览器中加载,则会出现钻石中可怕的问号)。这适用于传统的ColdFusion站点。当我通过Sublime调出Saved With Encoding文件时,我的外国字符集正确显示。我有什么想法我做错了吗?感谢。

1 个答案:

答案 0 :(得分:1)

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

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

我是一个Sublime用户,所以我只是去了File - &gt;使用编码保存,带有BOM的UTF-8,无需标签即可运行。然后我很高兴我在Python 3中度过了大部分时光!