2013-08-21 65 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

相關問題