2012-12-04 59 views
0

我有一個XML文件,我保存爲ASCII/UTF-8在C#中使用XmlSerializer。一個字段包含文件夾路徑位置。我最近發現,在非英文語言的Windows系統上,路徑字段中可能會有特殊字符。我可以將整個文件保存爲Unicode/UTF-16,但爲了少數字符的緣故,文件大小加倍。處理ASCII文件中的Unicode字符?

有沒有辦法將非ASCII字符插入到另一個ASCII字符串中?

+1

如果它是一個ASCII文件,它不會和_cannot_不包含Unicode字符。 'ASCII'和'UTF-8'是非常不同的編碼 - 你實際使用哪一個? – Oded

+0

啊 - 我以爲他們是一樣的。我正在使用Ascii。 unicode與UTF-16相同嗎? – Sugrue

+1

不。有很多Unicode編碼。最常見的是UTF-8,UTF-16和UTF-32。你想要UTF-8。 –

回答

7

沒有ASCII/UTF-8這樣的東西。這些是兩種不同的編碼,實際上編碼不同的字符集。我懷疑你現在實際上是在使用ASCII,或者是Windows ANSI。

UTF-8是Unicode的完整編碼。如果文件只包含ASCII字符,則UTF-8編碼與ASCII編碼相同。如果你的文件主要是英文的,那麼UTF-8是產生最小文件的Unicode編碼。

結論:使用UTF-8。

+0

謝謝 - 我會嘗試使用UTF-8,看看它是否能解決我的問題。 – Sugrue

+0

是的 - 這是一種享受。謝謝。 – Sugrue