Ajax 中文亂碼問題

來源:互聯網
上載者:User
js 相關代碼:
function doFind(default_value){
var q_bureau_name = document.forms[0].q_bureau_name.value;
var defpars = '';
if(default_value != null){
   defpars = '&default_value='+default_value;
}
var url = 'customeroperAction.do';
var pars = 'action=getbureaulist&sname=customerTel.TEL_BUREAU&q_bureau_name='+encodeURI(encodeURI(q_bureau_name))+defpars;     //encodeURI 兩次將文本字串編碼為一個有效統一資源識別項 (URI)。
var my = new Ajax.Request(url,{method: 'post',parameters: pars,onComplete: show});
}
function show(originalRequest)
{
var BUREAUSPAN = document.getElementById("BUREAUSPAN");
BUREAUSPAN.innerHTML = originalRequest.responseText;
}
java 相關代碼
String q_bureau_name = Util.filter(request.getParameter("q_bureau_name"));
   q_bureau_name = java.net.URLDecoder.decode(q_bureau_name, "UTF-8");
//ajax提交資料(post)的格式預設為utf-8,利用javascript的提供的escape()或encodeURI()方法.在伺服器端接收的時候要使用java.net.URLDecoder.decode(value,"UTF-8")方法進行解碼.

js相關知識:
escape 方法

String 對象編碼以便它們能在所有電腦上可讀,

escape(charString)

必選項 charstring 參數是要編碼的任意 String 對象或文字。

說明

escape 方法返回一個包含了 charstring 內容的字串值( Unicode 格式)。所有空格、標點、重音符號以及其他非 ASCII 字元都用 %xx 編碼代替,其中 xx 等於表示該字元的十六進位數。例如,空格返回的是 "%20" 。

字元值大於 255 的以 %uxxxx 格式儲存。

注意 escape 方法不能夠用來對統一資源標示碼 (URI) 進行編碼。對其編碼應使用 encodeURIencodeURIComponent 方法。

encodeURI 方法

將文本字串編碼為一個有效統一資源識別項 (URI)。

encodeURI(URIString)

必選的 URIString 參數代表一個已編碼的 URI。

說明

encodeURI 方法返回一個編碼的 URI。如果您將編碼結果傳遞給 decodeURI,那麼將返回初始的字串。encodeURI 方法不會對下列字元進行編碼:":"、"/"、";" 和 "?"。請使用 encodeURIComponent 方法對這些字元進行編碼。

encodeURIComponent 方法

將文本字串編碼為一個統一資源識別項 (URI) 的一個有效組件。

encodeURIComponent(encodedURIString)

必選的 encodedURIString 參數代表一個已編碼的 URI 組件。

說明

encodeURIComponent 方法返回一個已編碼的 URI。如果您將編碼結果傳遞給 decodeURIComponent,那麼將返回初始的字串。因為 encodeURIComponent 方法對所有的字元編碼,請注意,如果該字串代表一個路徑,例如 /folder1/folder2/default.html,其中的斜杠也將被編碼。這樣一來,當該編碼結果被作為請求發送到 網頁伺服器時將是無效的。如果字串中包含不止一個 URI 組件,請使用 encodeURI 方法進行編碼。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.