2011-10-28 23 views
1

目前我有Javascript生成的XML編碼設置爲UTF-8,我們遇到了偶爾在XML中出現一些國際字符的情況。例如:如何使用UTF-8編碼正確地轉義XML中的國際字符?

<?xml version="1.0" encoding="UTF-8"?> 
<example> 
     <comments><![CDATA[Hola. Mi nombre es Pat. ¿Cómo puedo ayudarle?]]></comments> 
</example> 

留下這樣的國際字符給我們在瀏覽器中打開時出現編碼錯誤。將XML編碼更改爲ISO標準可以解決問題,但我們擔心如果編碼不同,XML的接收方將無法正確讀取它。目前,我們的解決方案是esacpe這些字符,像這樣:

<?xml version="1.0" encoding="UTF-8"?> 
<example> 
    <comments><![CDATA[Hola. Mi nombre es Pat. &#191;C&#243;mo puedo ayudarle?]]></comments> 
</example> 

我的問題是,這是正確的方式去逃避這些字符?

+0

我會說這個問題不是用XML;它與您使用編輯器或瀏覽器(或兩者)的方式一致。 –

+0

爲什麼不將CDATA編碼爲UTF-8?這將是「正確的」解決方案,恕我直言。 – ckruse

+0

哪個瀏覽器在第一個示例中給出錯誤?恕我直言,它應該是正確的。否則,頭部的XML編碼規範就沒有任何意義。 – Robert

回答

1

你寫道,Javascript正在生成XML編碼設置爲UTF-8。你怎麼做到這一點?

您是否檢查過生成的文件是否真的是UTF-8編碼?我有點懷疑 - 如果是的話,你不會有任何麻煩,對吧?我的猜測是,你在XML文件中指定編碼爲encoding =「UTF-8」,但文件編碼並不是真正的utf-8。

最好, 羅納德

+0

嗯,你可能是對的,但我該如何糾正問題? – ashansky

+1

如何創建文件? – ronald

+0

我認爲你是對的,因爲我在javascript生成XML後檢查文件的方式是將其轉換爲平面文本,而該文本不會被編碼爲UTF-8 – ashansky