Ajax 中文乱码问题

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 的以 %u*xxxx* 格式存储。

注意 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,其中的斜杠也用吃编码。这样一来,当该编码结果给看做请求发送至
web 服务器时将凡废的。如果字符串中隐含不止一个 URI 组件,请以
encodeURI 方法进行编码。

相关文章