2013-08-21 47 views
0

我有一个C++代码,正在创建一个SVG文档。 我在一段文字中有字符ê。 该文件被正确显示,如果我说ê(Unicode字符)XML解析错误:格式不正确

XML版本= “1.0” 编码= “ISO-8859-1”

但不与编码工作= “UTF-8” 或UTF-16 或默认编码也应该是utf-8。 我在Ubuntu上试过Firefox,Opera和Rekonq。同样的回应所有3.

我不明白这是因为UTF-8应该显示ê。 任何人都可以解释一下吗?

+2

然后该文件不*实际编码为UTF-8 * ?! – deceze

+0

是的。我感到困惑,因为gvim显示字符,但浏览器给我一个错误。所以我没有意识到角色的价值必须被检查。我实际上没有编码,但从另一个文件复制数据,所以没有注意到。感谢非常好的文章链接。 – sunam

回答

1

<xml ... encoding="ISO-8859-1">只是表示什么编码的文件被认为是在它不改变文件的编码。如果它在将文档指定为ISO-8859-1时有效,但不与其他任何内容一起使用,则意味着文档实际上是用ISO-8859-1编码的,而不是其他任何内容。

如果你想要一个UTF-8文件,你需要用UTF-8编码该文件,<xml>声明中指明。

如果您不知道这意味着什么,请参见What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text

相关问题