2017-05-02 89 views
0

代表UTF-8但願這不是一個愚蠢的問題方式XML消息

所以,在XML表示UTF-8編碼的非ASCII字符時,我知道我們可以使用十進制或十六進制表示

'&#'[0-9] +';' (十進制)

'& #x'[0-9a-fA-F] +';' (十六進制)

舉一個表情符號的下面的例子中,我們可以有

十進制HTML實體=&符號+#128578;

十六進制HTML實體=符號+#x1f642; (十六進制代碼點)

然而,對於這個表情符號UTF-8十六進制值的另一種表示是 F0 9F 99 82

所以,如果我們把F0 9F 99 82成XML,它只是去像那樣或者它有前綴,如果是的話如何?

何時使用&符號+#x1f642; vs F0 9F 99 82?

+1

UTF-8是Unicode的一個特定_encoding_,這不是什麼進入一個實體 - 那些採取代碼。如果你的整個_document_是utf8編碼的,那麼你可以合理地把原始的utf8編碼的字符放在裏面。 – pvg

+0

如果您沒有嘗試使用UTF-8作爲文檔編碼手寫XML,則使用XML數字字符實體引用沒有意義。即使你這樣做,一個使用UTF-8作爲輸出編碼的典型XML處理器也會正確地取消你寫它的方式。 –

回答

0

如果您編寫以UTF-8編碼的文檔,那麼原始的UTF-8編碼字節可以在文件中。注意編碼的聲明:

<?xml version='1.0' encoding='utf-8'?> 
<test></test> 

如果不是UTF-8編碼,HTML實體可以產生相同的結果:

<?xml version='1.0' encoding='ascii'?> 
<test>&#x1f642;&#128578;</test> 
+0

它會像> Content-Type:application/json;字符集= UTF-8。如果發送JSON響應 – user2426637