1. 程式人生 > >Ajax中文亂碼的解決

Ajax中文亂碼的解決

text under 方法 uri 字符串 utf spa mssq 服務端

網上有很多解決Ajax中文亂碼的例子,昨晚弄了很久,最終確定一種“確實”有效地方法。
首先我有必要說明一下我遇到的情況:
有一個註冊頁面,註冊用戶填完信息並提交後,頁面獲得信息並通過java servlet存放到mssqlserver中。但若填寫的信息中含有中文,則報錯。這就是我遇到的情況。

網上似乎有很多種解決方法,不過我現在只確定了一種:

你要要將含有中文的數據進行兩次encodeURI編碼,在服務器端用java.net.URLDecodeer.decode(String s,"UTF-8");如:
客戶端:
url="test.jsp?name="+encodeURI(encodeURI(name));
服務端:
String name = request.getParameter("name");
name = java.net.URLDecoder.decode(name,"UTF-8");

這樣就能在服務端獲得正確的中文字符串。
值得說明的是,如果把"UTF-8"改為"GBK"則轉換失敗,具體原因還沒有探明白

Ajax中文亂碼的解決