0

我有一个带有西班牙语文本的 UTF-8 文件,并且某些带有重音符号的单词在某些软件中显示不正确。

我相信我的文件是正确的。例如,名称“JESÚS”编码为4A 45 53 C3 9A 53.

>>> b'\x4A\x45\x53\xC3\x9A\x53'.decode('utf-8')
'JESÚS'

c39a\u00da根据http://www.fileformat.info/info/unicode/char/00da/index.htm是正确的 UTF-8 编码。

那么,为什么有些软件渲染不正确呢?

4

3 回答 3

4
于 2015-12-23T11:12:20.527 回答
2
于 2015-12-23T11:38:19.170 回答
0

自动检测文本编码是不可靠的。尽管对于我们人类来说,在许多情况下,经过一些练习后很明显,无论您想出什么程序,某些文本输入都可能会失败。例如,讨论字符编码损坏的文本,如本页(!)

因此,许多处理文本的程序根本不进行自动检测,而是依赖于指定编码的用户。

使用 Unicode,有可以为您提供帮助的BOM字节顺序标记)。在 UTF-8 中,如果你的文本以 8 位字符开头0xEF 0xBB 0xBF,它可以帮助一些程序确认整个文本的编码。

另一大类解释 HTML 文本的程序 - 然后您可以使用元标记,如讨论选项的问题中所示:

<meta charset="utf-8"> 与 <meta http-equiv="Content-Type">

对于所有其他程序,由它们决定 - 你有任何你想做的例子吗?

于 2015-12-23T11:25:39.837 回答