utf-8 - 强制从 US-ASCII 编码为 UTF-8 (iconv)

标签 utf-8 character-encoding iconv

我正在尝试将一堆文件从 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/

相关文章:

php - 多个字符集问题

php - iphone sdk\Uxxx 到 utf-8

linux - 不同的Python在不同的SSH登录中表现如何?

java - WAR 文件在 tomcat 中工作,但在 Jetty 中给出 UTF-8 错误,为什么?

swift - Swift 3 中的所有 UTF8 字形

jsp - 字符编码 - RequestDispatcher

php - UTF8 编码问题 - 有很好的例子

php - 删除无效/不完整的多字节字符

javascript - 在 node.js/express 中处理 windows-1250 URI

ruby - 在ruby中将utf-8转换为unicode