2014-03-30 25 views
1

我通過簡單的GET請求連接到HTTP API。在HTTP響應中獲取百分比('%')字符和unicode代碼點

的預期響應是一個字符串,代表一個JSON,可能包含希伯來語(Unicode)字符,但我得到這樣的事情(粘貼僅僅是個開始):

%u007b%u0020%u0022%u0053%u0074%u0061%u0074%u0075%u0073... 

結果是否相同我直接使用ajax或瀏覽器導航欄。

我得到預期的json字符串的唯一地方是在Firefox控制檯中,通過記錄響應對象,選擇它並查看responseText屬性。 我也可以使用反斜槓替換百分號字符,將結果放入一個unicode分析器並獲取正確的字符串。

任何人對發生了什麼有什麼想法?

+1

如何獲得該字符串?你不應該得到它。如果你解碼它,那麼它看起來像一個json對象的開始:'s.replace('%u',''\\ u')。decode('unicode-escape')' - >'{「Status' – jfs

+0

Yep ,我沒有從服務的開發人員那裏得到答案,但它看起來像是URL編碼和unicode之間的一種奇怪的混合體......或許他們只是一個(很奇怪的)選擇。同時我使用解決方案建議上面,謝謝! –

回答

0

該響應似乎使用不合適的javascript函數escape()進行編碼,該函數產生%uXXXX編碼。如果是這種情況,那麼服務應該使用上面link中引用的encodeURIComponent()或encodeURI()。 您目前的手動解碼方法是正確的,直到服務更新。