2013-08-30 25 views
3

我的api返回以下json。json默認字符集API和瀏覽器顯示

HTTP/1.1 200 OK 
Date: Fri, 30 Aug 2013 14:14:32 GMT 
Server: Apache/2.2.22 (Ubuntu) 
Content-Length: 431 
Keep-Alive: timeout=5, max=100 
Connection: Keep-Alive 
Content-Type: application/json 


{ 
    "member": [ 
    { 
     "city": "Li\u00e8ge", 
     "country": "Belgi\u00eb", 
    } 
    ] 
} 

以下的規格(JSON specs) JSON內容應以Unicode編碼。默認編碼是UTF-8。 所以Contect-Type沒有指定字符集

但是Chrome或IE10瀏覽器沒有顯示正確的(?u00e8)和?(\ u00eb)。 這是因爲Chrome或IE10有不同的默認字符集。我需要將API提供給客戶,他還會看到字符串「Belgi \ u00eb」和「Li \ u00e8ge」。我是否違反了規範,或者我做對了,瀏覽器是愚蠢的?

+0

那麼,如果你發送'\ u00e8'而不是'è',我原本以爲charset根本就不重要...... – Bergi

+1

是我的第一個假設,我發送了\ u00e8,但是瀏覽器或捲曲不顯示è – user1120753

+0

\ u00e8是一個讀取ISO 8859-1的值,這是否意味着我的json不是utf-8 – user1120753

回答

-2

您可以指定字符集,如果你想:

contentType : 'application/json; charset=utf-8' 

,還可以使用utf8_decode(或類似),在另一端只是OT確認。 在這裏工作。