`

ajax技术,获得数据乱码问题

阅读更多

在网上好多提到ajax技术获得数据乱码问题。

我这里有一个解决方案,

针对原有的编码是gbk或gb2312的页面。

这时如从服务器的一个servlet数据,用以下代码来接收。

var messag=XMLHttpReq.responseText;

alert(messag);

 此时,有可能显示为乱码,

针对这个问题解决如下:

在服务器端将需要的数据进行如下编码,即utf-8编码,然后用以下代码来解码

     var messag=XMLHttpReq.responseText;
      var message=unescape(messag);

   aler(message);

   这时就不会有乱码了。

java 代码
  1. package com.test;   
  2.   
  3. public class  EscapeUnescape   
  4. {   
  5.  public static String  escape (String src)   
  6.  {   
  7.      int i;   
  8.      char j;   
  9.      StringBuffer tmp = new StringBuffer();   
  10.      tmp.ensureCapacity(src.length() * 6);   
  11.   
  12.      for (i = 0; i < src.length(); i++) {   
  13.          j = src.charAt(i);   
  14.          if (Character.isDigit(j) || Character.isLowerCase(j) ||   
  15.              Character.isUpperCase(j))   
  16.              tmp.append(j);   
  17.          else {   
  18.              if (j < 256) {   
  19.                  tmp.append("%");   
  20.                  if (j < 16)   
  21.                      tmp.append("0");   
  22.                  tmp.append(Integer.toString(j, 16));   
  23.              } else {   
  24.                  tmp.append("%u");   
  25.                  tmp.append(Integer.toString(j, 16));   
  26.              }   
  27.          }   
  28.      }   
  29.      return tmp.toString();   
  30.  }   
  31.   
  32.  public static String  unescape (String src)   
  33.  {   
  34.      StringBuffer tmp = new StringBuffer();   
  35.      tmp.ensureCapacity(src.length());   
  36.      int lastPos = 0, pos = 0;   
  37.      char ch;   
  38.      while (lastPos < src.length()) {   
  39.          pos = src.indexOf("%", lastPos);   
  40.          if (pos == lastPos) {   
  41.              if (src.charAt(pos + 1) == 'u') {   
  42.                  ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6),   
  43.                                               16);   
  44.                  tmp.append(ch);   
  45.                  lastPos = pos + 6;   
  46.              } else {   
  47.                  ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3),16);   
  48.                  tmp.append(ch);   
  49.                  lastPos = pos + 3;   
  50.              }   
  51.          } else {   
  52.              if (pos == -1) {   
  53.                  tmp.append(src.substring(lastPos));   
  54.                  lastPos = src.length();   
  55.              } else {   
  56.                  tmp.append(src.substring(lastPos, pos));   
  57.                  lastPos = pos;   
  58.              }   
  59.          }   
  60.      }   
  61.      return tmp.toString();   
  62.  }   
  63.     
  64. }   

 

 

 

分享到:
评论

相关推荐

    Ajax乱码小结

    在使用Ajax技术进行前后端交互的过程中,常常会遇到字符编码的问题,特别是当涉及到中文或其他非ASCII字符时,容易出现乱码现象。根据题目中的描述,“Ajax乱码:当调用`request.getParameter()`函数时,会自动进行...

    ajax的处理中文乱码程序

    在进行Web开发时,我们经常需要使用Ajax技术实现异步加载数据的功能。当请求的数据包含中文字符时,尤其是在跨域请求不同编码标准的页面时,经常会遇到中文乱码的问题。本文主要探讨如何解决跨域读取其他网页时出现...

    AJAX中文乱码总结

    AJAX(Asynchronous ...通过以上方法,大部分AJAX中文乱码问题都能得到解决。但每个项目都有其特殊性,可能需要根据具体情况进行调整。在实际开发中,遇到此类问题时,应首先检查编码一致性,然后逐步排查其他环节。

    Ajax乱码解决办法

    通过以上步骤,大多数Ajax乱码问题都可以得到解决。在实际开发中,要特别注意客户端和服务器之间的编码一致性,确保数据在传输过程中不会因为编码问题出现乱码。同时,良好的编程习惯,如始终使用UTF-8作为统一编码...

    Flex解决乱码问题

    通过这些综合措施,可以有效地避免乱码问题的发生,确保用户无论在哪种浏览器下都能获得良好的阅读体验。 通过上述方法的实施,开发者可以大大降低Flex应用程序在多浏览器环境下出现乱码的概率,提高应用的整体质量...

    基于Ajax技术Web实时监控系统.pdf

    4. **字符编码问题**:解决汉字乱码问题,确保数据显示正确。 #### 结论 综上所述,基于Ajax技术的Web实时监控系统通过引入异步通信机制显著改善了用户体验,解决了传统监控系统中存在的实时性差、数据传输效率...

    JSP乱码终极攻略和AJAX初步运用

    当涉及到AJAX技术时,尤其是通过`window.open()`或`location.href()`方法传递URL中的中文参数,情况会有所不同。如果页面使用的是UTF-8编码,那么在服务器端解码时,需要使用`UTF-8`而不是`GBK`。如果尝试使用GBK...

    奇怪的struts2的中文乱码问题及解决.docx

    通过这种方式,IE中的中文乱码问题得到了解决。 此外,对于其他可能出现的IE中文乱码问题,开发者也可以从以下几个方面进行排查和解决: 1. 检查并确保服务器端的字符集设置正确,如Tomcat的`server.xml`中的`...

    05-使用XMLHttpRequest对象发送和接收XML数据,及乱码问题的解决.pdf

    3. 解决乱码问题:文件中提到了乱码问题的解决方法。在设置HTTP响应头的Content-Type时,应当指定字符编码为UTF-8。这样做的目的是确保无论服务器是哪种操作系统平台,接收方浏览器都能正确地解析字符编码,从而避免...

    Ajax传递中文参数到后台乱码的有效解决方法

    然而,当使用Ajax传递包含中文字符的参数时,由于编码和解码的不统一,经常会出现乱码问题。为解决这一问题,本文将详细介绍一种有效的方法来确保中文参数能够正确无误地传递到后端。 首先,要了解的是,乱码问题的...

    IE下Ajax提交乱码的快速解决方法

    在进行Web开发时,尤其在使用IE浏览器与Ajax技术进行数据交互时,开发者经常会遇到乱码问题。在Ajax提交数据的过程中,特别是涉及中文字符时,未经正确处理的数据在服务器端接收时往往会出现乱码,这会导致后续处理...

    Ajax版本的工作搜索引擎.rar

    在"Ajax版本的工作搜索引擎"中,我们可以理解为这个搜索引擎利用Ajax技术实现了动态、异步的搜索功能,使得用户在输入查询词时可以即时获得搜索结果,提升了用户体验。 Prototype是一个JavaScript框架,它简化了DOM...

    Ajax以及Json入门学习全攻略

    Ajax 请求中可能出现编码问题,需要确保服务器和客户端的字符编码一致,以防止乱码。 1.6 **Ajax 的优点** - 提高用户体验,页面无刷新更新 - 减少网络带宽消耗 - 支持离线应用,通过浏览器缓存数据 1.7 **缓存...

    ajax实现excel报表导出

    Ajax技术允许通过JavaScript发起异步请求与服务器通信,常用的库有jQuery提供的$.ajax()方法。当需要导出Excel报表时,可以在前端使用Ajax向服务器发送请求,后端处理请求后,将报表数据以文件流的形式返回给前端,...

    Ajax学习笔记

    - **字符编码**:确保发送的数据和服务器接收的数据保持相同的字符编码,防止乱码问题。 6. **Ajax的优点** - **用户体验**:提高了网页的响应速度和交互性,用户感觉页面操作更加流畅。 - **服务器压力**:减少...

    浅析AJAX乱码及错误解决方案

    在当前的网络环境中,JavaScript被广泛应用于网页交互,而AJAX技术更是让动态加载数据变得无处不在。然而,由于编码规范的不一致,尤其是在各种浏览器环境中,经常会出现乱码和JavaScript错误。其中,错误类型大致...

    解决springmvc+mybatis+mysql中文乱码问题

    在开发Java Web应用程序时,尤其是使用Spring MVC、MyBatis和MySQL这样的技术栈时,中文乱码问题常常困扰着开发者。本文将详细讲解如何解决在处理请求、响应以及数据库存储时可能出现的中文乱码问题。 首先,让我们...

    JQuery中Ajax实现

    在现代Web开发中,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于构建响应迅速、用户体验友好的动态网页应用。通过Ajax,Web应用可以无需重新加载整个页面的情况下,仅更新部分数据,这极大地提高了网页...

    JavaScript+JQuery教程

    在JavaScript和jQuery的世界里,AJAX(异步JavaScript和XML)是一种核心技术,它使得网页无需刷新即可与服务器交换数据并更新部分网页内容。本文主要探讨了AJAX中GET和POST两种请求方式的区别,以及如何解决AJAX请求...

    php+ajax实现无刷新数据分页的办法

    在本文中,我们将探讨如何使用PHP和AJAX技术实现无刷新的数据分页。这个方法能够提升用户体验,因为用户无需每次切换页面时都重新加载整个网页。我们先来解析一下给出的代码片段,然后逐步理解其工作原理。 首先,`...

Global site tag (gtag.js) - Google Analytics