易截截图软件、单文件、免安装、纯绿色、仅160KB

关于彻底解决Ajax异步调用时出现中文乱码的问题

今天帮同事解决了js异步调用时出现了中文乱码的问题,具体解决办法如下:
1)首先确认js是否没有对后台传输过来的中文进行解码。
   按照网络上写的方法通过js对response的读取出来数据进行多次测试,发现仍然不能解决,细想不一定是此处问题。改换其他办法解决。
2)如果解码解决不了,再看是否是因为网络传输过来的时候编码。
在后台往前台js中页面回写数据之前,先设置response的传输编码为UTF-8(因为xmlHttp.responseText读取后台的传输字符的默认编码就是UTF-8),
   后台java代码如下:
    response.setCharacterEncoding("UTF-8"); 
    PrintWriter out=response.getWriter();  
    String s = "123你好";
    out.print(s); //往前台的js中回写响应信息
 
    前台的js代码如下:
    var xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
    var url = "/test/RelateClitInfoQueryService?clitno=" + clitno;   
    xmlHttp.open("post",url,false);
    xmlHttp.send();
      
    //获取返回值
    if(xmlHttp.responseText != null){
     var clitinfo_tmp = xmlHttp.responseText;
    
     //在java代码中添加response.setCharacterEncoding("UTF-8"); 后alert出来的中文就是正常的了,如果不加就是乱码(即?)
     alert("clitinfo_tmp==" + clitinfo_tmp); 
    }
就此问题解决。希望此问题的解决对其他遇到乱码的朋友有所帮助。


相关文档:

简单Ajax与JSP相结合页面

环境:Ajax+JSP,Tomcat5.05
参考:http://www.w3cschool.cn/index-24.asp.htm
文件:testAjax.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb ......

jquery+ajax+json+asp.net学习笔记(一)

jquery中已经封装了ajax的过程,使用起来很简单:
通过get方式提交:
<html>
<head>
    <title>实现服务器时间实时变化</title>
    <script language="javascript" type="text/javascript" src="js/jquery-1.3.1.js"></script>
  & ......

jquery+ajax+json+asp.net学习笔记(二)

jquery通过post传递数据到服务器(不使用插件):
<html>
<head>
    <title>Untitled Page</title>
    <script language="javascript" type="text/javascript" src="js/jquery-1.3.1.js"></script>
    <script language="ja ......

php 的 ajax 实现

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<input type="button" onclick="test();" value="提交"/>
<script type="text/javascript">
    function test(){
            var valid = {
& ......

jQuery之Ajax方法

1 . jQuery帮助之Ajax请求(一)jQuery.ajax(options)
引自:http://www.flywe.net/article/javascript/jQuery_ajax.html
             jQuery.ajax(options)
      通过 HTTP 请求加载远程数据。
    ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号