`
zhpengfei0915
  • 浏览: 64878 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

AJAX中文乱码的两类问题

 
阅读更多

AJAX中文问题分为两大类:

1)发送路径中的参数有中文,在服务器段接收参数值是乱码

例如:

var url="a.jsp?name=小明";
xmlHTTP.open ("post",url,true);

解决办法:

利用javascript的提供的escape()或encodeURI()方法

例如:

客户端:

var url="a.jsp?name=小明";
url=encodeURI(url);
url=encodeURI(url); //两次,很关键[具体为什么,我也不清楚]
/********************************************/
也有人写成var url="a.jsp?name=escape("小明")";

功能和encodeURI方法类似。

/********************************************/
xmlHTTP.setrequestheader("cache-control","no-cache");
xmlHTTP.setrequestheader("Content-Type","application/x-www-form-urlencoded");
xmlHTTP.setrequestheader("contentType","text/html;charset=uft-8")//指定发送数据的编码格式
xmlHTTP.open ("post",url,true);

服务器端:

String name = request.getParameter("name");
name = java.net.URLDecoder.decode("name", "UTF-8");

2)返回来的responseText或responseXML的值中含有中文是乱码

原因:AJAX在接收responseText或responseXML的值的时候是按照UTF-8的格式来解码的,如果服务器段发送的数据不是UTF-8的格式,那么接收responseText或responseXML的值有可能为乱码。

解决办法:在服务器指定发送数据的格式:

在jsp文件中:

response.setContentType("text/text;charset=UTF-8");//返回的是txt文本文件

或是

response.setContentType("text/xml;charset=UTF-8");//返回的xml文件

总结:1)ajax提交数据的格式默认为utf-8,利用javascript的提供的escape()或encodeURI()方法.在服务器端接收的时候要使用Java.net.URLDecoder.decode("","UTF-8")方法进行解码.

2)xtmlhttp 返回的数据默认的字符编码是utf-8,所以服务器要向客户端发送数据的时候,也要采用utf-8编码

如果上述方法仍然解决不了乱码问题,那你尝试一下把jsp,htm,java文件用UTF-8编码格式保存.

总之:前后台数据交互都采用utf-8编码就行了.

分享到:
评论

相关推荐

    AJAX中文乱码问题探讨及解决

    AJAX中文问题分为两大类: 1)发送路径中的参数有中文,在服务器段接收参数值是乱码 例如: var url=”a.jsp?name=小李”; xmlHTTP.open (“post”,url,true); 解决办法: 利用javascript的提供的escape()或...

    ajax的两种提交方式(get/post)和两种版本

    最近比较闲,就把以前用过的技术串一下做个手札,方便以后自己...get/post两种提交方式,但get提交容易乱码,一定多加注意 jsp页面: 代码如下: <%@ page language=”java” import=”java.util.*” pageEncodi

    openLayers geoserver常见问题

    geoserver 发布.shp 中文乱码问题 怎么解决啊 45 Geoserver怎么连postGreSql 数据库 48 Geoserver连Oracle Spatial 52 GeoServer架构浅谈 53 Geoserver发布地图无法显示问题 57 WebGIS相关的OpenGIS规范 58 ...

    歪酷CMS v1.0 Release gbk build 20120914

    歪酷网站管理系统(歪酷CMS)是一款基于THINKPHP框架开发的PHP+MYSQL网站建站程序,本程序实现了文章和栏目的批量动态管理,支持栏目无限分类,引入RBAC权限管理机制(下一版本将会具体实现...8.修正后台里部分页面乱码的问题

    java web技术开发大全(最全最新)

    4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第一个...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    14.12 解决Struts的中文乱码问题 14.13 运行验证程序 14.14 小结 第十五章 在线考试系统 15.1 系统概述 15.2 需求分析 15.2.1 系统用例图 15.2.2 需求规格说明书 15.3 系统设计 15.3.1 设计视图层 15.3.2 设计持久层...

    Discuz! X1.5.1 简体GBK R20111221.zip

    FIX 用户组中忽略审核时 禁止类关键词也将被忽略 FIX 群组搜索中主题列表链接错误 ADD 支持系统插件版本更新 ADD 腾讯分析增加WAP版统计 FIX 修正在Mac下的Safari下无法上传的BUG FIX 删帖回收站 FIX 修复...

    java web开发技术大全

    4.7.3 实例:解决服务端程序读取中文请求消息的乱码问题 4.7.4 实例:用AJAX技术发送和接收中文信息 4.7.5 实例:在请求消息头和响应消息头中转输中文 4.8 小结 第5章 JSP技术 5.1 用MyEclipse编写第...

    KODExplorer 芒果云-资源管理器

    - 树目录中文展开问题。 - ie 重命名状态textarea不可选则问题 - 修复mac 下 ctrl连选出现右键菜单。 - ie 树目录右键兼容性 - ###ver2.0 `2014/3/2` ---- ####fix bug:(bug解决和程序优化) - body右键...

    Discuz! X1.5.1 繁体BIG5 R20111221.zip

    FIX 用户组中忽略审核时 禁止类关键词也将被忽略 FIX 群组搜索中主题列表链接错误 ADD 支持系统插件版本更新 ADD 腾讯分析增加WAP版统计 FIX 修正在Mac下的Safari下无法上传的BUG FIX 删帖回收站 FIX 修复...

    Discuz! X1.5.1 繁体UTF8 R20111221.zip

    FIX 用户组中忽略审核时 禁止类关键词也将被忽略 FIX 群组搜索中主题列表链接错误 ADD 支持系统插件版本更新 ADD 腾讯分析增加WAP版统计 FIX 修正在Mac下的Safari下无法上传的BUG FIX 删帖回收站 FIX 修复...

    Discuz! X1.5.1 简体UTF-8 R20111221.zip

    FIX 用户组中忽略审核时 禁止类关键词也将被忽略 FIX 群组搜索中主题列表链接错误 ADD 支持系统插件版本更新 ADD 腾讯分析增加WAP版统计 FIX 修正在Mac下的Safari下无法上传的BUG FIX 删帖回收站 FIX 修复...

    asp.net知识库

    帮助解决网页和JS文件中的中文编码问题的小工具 慎用const关键字 装箱,拆箱以及反射 动态调用对象的属性和方法——性能和灵活性兼备的方法 消除由try/catch语句带来的warning 微软的应试题完整版(附答案) 一个...

    PHP入门到精通

    20.4解决数据库乱码问题 第3篇 高级应用 PHP网络开发(教学录像:42分33秒) 21.1电子邮件的原理 21.2系统的配置需求(SMTP和POP3服务器安装配置) 21.3应用PHP发送和接收电子邮件 PHP与XML技术(教学录像:31分17秒...

    PHP入门到精通02

    20.4解决数据库乱码问题 第3篇 高级应用 PHP网络开发(教学录像:42分33秒) 21.1电子邮件的原理 21.2系统的配置需求(SMTP和POP3服务器安装配置) 21.3应用PHP发送和接收电子邮件 PHP与XML技术(教学录像:31分17秒...

    Java学习笔记-个人整理的

    {8.3}创建线程的两种方法}{123}{section.8.3} {8.4}Runnable}{123}{section.8.4} {8.5}Sleep阻塞与打断唤醒}{124}{section.8.5} {8.5.1}sleep与wait的差异}{124}{subsection.8.5.1} {8.6}IO阻塞}{126}{section....

Global site tag (gtag.js) - Google Analytics