我正在尝试将一堆文件从 US-ASCII 转码为 UTF-8。
为此,我使用 iconv:
iconv -f US-ASCII -t UTF-8 file.php > file-utf8.php
我的原始文件是 US-ASCII 编码的,这使得转换无法发生。显然发生这种情况是因为 ASCII 是 UTF-8 的子集...
iconv US ASCII to UTF-8 or ISO-8859-15
并引用:
There's no need for the textfile to appear otherwise until non-ASCII characters are introduced
确实。如果我在文件中引入一个非 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 answer)- 这意味着 US ASCII 文件实际上采用
UTF-8
编码 - 我的问题来自其他地方
最佳答案
ASCII 是 UTF-8 的子集,因此所有 ASCII 文件都已采用 UTF-8 编码。 ASCII 文件中的字节和“将其编码为 UTF-8”产生的字节将是完全相同的字节。它们之间没有区别,因此无需执行任何操作。
看起来你的问题是文件实际上不是 ASCII。您需要确定它们使用的编码,并对它们进行正确的转码。
关于utf-8 - 强制从 US-ASCII 编码为 UTF-8 (iconv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11303405/