我想将一堆文件从US-ASCII转换成UTF-8编码。
为此,我使用iconv:
iconv -f US-ASCII -t UTF-8 file.php > file-utf8.php
我的原始文件是US-ASCII编码的,这使得转换无法进行。显然这是由于ASCII是UTF-8的子集...
引用一下:
在非ASCII字符被引入之前,文本文件不需要以其他方式出现
没错。如果我在文件中引入一个非ASCII字符并保存它,比如使用Eclipse,那么文件的编码(字符集)将切换到UTF-8。
对于我的情况,我想强制iconv无论如何都将文件转换为UTF-8。无论其中是否存在非ASCII字符。
注意: 原因是我的PHP代码(非ASCII文件...)正在处理一些非ASCII字符串,这导致字符串无法被正确解释(法语):
Il était une fois... l'homme série animée mythique d'Albert
Barillé (Procidis), 1ère
...
US ASCII
- 就是 -UTF-8
的一个子集 (见下面的Ned's答案)- 这意味着US ASCII文件实际上是用
UTF-8
编码的 - 我的问题来自别处
utf8_encode
、utf8_decode
等等...或者更深入一些: http://www.toptal.com/php/a-utf-8-primer-for-php-and-mysql https://dev59.com/13VC5IYBdhLWcg3wfhGL - eightyfive