我在通過AJAX發佈JSON時遇到了麻煩。通過AJAX強調問題發佈JSON
出於測試目的,下面的代碼重新產生問題,而在Firefox的便籤創建(我使用骨幹在應用層):
var xhr = new XMLHttpRequest();
xhr.open("POST", "/my/api/url"); // could be PUT too
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send(JSON.stringify({ test: "é" }));
其實,不管是什麼口音的字符串我在我的JSON中使用,它總是發送不正確(我已經在Firefox和Chrome中進行了測試,都是最新版本) - 我可以在Chrome DevTools/Firebug中看到請求數據錯誤。在這種情況下發送的是é
。
我在Java中找到了解決方法。我不會打擾一次或兩次使用它,但是,看起來情況並非如此。還有很多事情要做。
解決方法如下:
test = new String(test.getBytes("ISO-8859-1"), "UTF-8");
任何進一步的幫助,將不勝感激。
我的設置(如果有人需要):
- Windows 7的64位
- JDK 1.7 x64的
- 的JBoss 4.2.3
- 的RESTEasy
- 的MyEclipse 9.1
我當他們出現時,經常會用有趣的數據來更新這個問題。
,你能否告訴我們,讓你'A中的代碼© '? JSON不關心字符編碼,它只是發送字節。 – Halcyon
我直接在Firefox Scratchpad中完成了該代碼。 – gustavohenke
你的IDE /編輯器有哪些字符集? – bpoiss