首  页 | 资讯中心 | 网络学院 | 天新汽车 | 天新手机 | 天新游戏 | 软件开发 | 考试认证
品 牌 机 | 笔 记 本 | 服 务 器 | 天新数码 - DC - DV - MP3 - MP4 - GPS - TV | 数字家庭
硬件 DIY - 主板 - CPU - 内 存 - 硬 盘 - 显示器 - 显卡 - 光驱 - 机箱 - 键鼠 - 网络设备
办公设备 | 打 印 机 | 扫 描 仪 | 投 影 仪 | 一 体 机 | 传 真 机 | 路 由 器 | 交 换 机
软件下载 | 驱动下载 | 游戏下载 | 源码下载 | 教程下载 | 站长在线 | 产品中心 | 报价中心
开发首页 | 开发语言 | .Net开发 | Java开发 | Web开发 | 数据库开发 | 移动开发 | 游戏开发 | 企业开发 | 操作系统 | 软件工程
VB VC Delphi PB BCB C++ - ASP.net C# VB.net - J2EE J2SE J2ME EJB - ASP PHP JSP CGI - MSSQL Oracle DB2 MySQL - CodingLife
  Web开发首页 | ASP开发 | PHP开发 | CGI开发 | Perl开发 | XML开发 | JavaScript | VBScript | Web服务器
  您现在的位置:天新网 > 软件开发 > Web开发 > JavaScript
AJAX中文乱码的两类问题
http://dev.21tx.com 2008年05月06日 网页教学网

每日文章精萃
.Net:在ASP.NET中访问DataGrid中所有控 Java:Eclipse开发J2ME手机程序
ASP:Asp Object 之:TotalBytes PHP:大型系统上PHP令人不爽的九大原因
JSP:JSP的环境配置 CGI:Perl教学 第三篇 操作符之二
VB:精用Boolean表达式,让代码再减肥 VC:实现MFC扩展DLL中导出类和对话框

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中DOM的操作方法
下一篇: AJAX初学:IE缓存页面的问题

编辑推荐
相关内容
·关于clientHeight、offsetHeight、scrollHe
·用Javascript轻松制作抽奖系统
·AJAX实例应用初体验:自动保存草稿
·base64编码/解码
·数字日期转化为汉字日期格式...
·关于javascript树形结构的编写问题
·Javascript实例教程(21) OLE Automation(1)
·Javascript实例教程(12) 隐藏script代码
·Javascript实例教程(21) OLE Automation(4)
·连串英文自动换行的方法
·AJAX中DOM的操作方法
·实现在AJAX下的前进、后退功能
·使用 jQuery 简化 Ajax 开发
·用Ajax和Web2.0扩展SOA
·ASP.NET AJAX中的异步Web Services调用
·用AJAX技术做Google Suggest效果
·Ajax是建立Web应用的一条新途径
·用AJAX编写用户注册时的应用实例
·iPhone面市在即 移动设备Ajax将倾闸而出?
·RIA世界里的三种信仰
最近更新
人气最热
·AJAX中DOM的操作方法
·AJAX初学:IE缓存页面的问题
·JavaScript图片特效代码下载
·延迟事件为0的setTimeout的真正目的
·Javascript教程:关于内存泄漏问题
·document.createElement()用法及注意事项
·学习JavaScript的事件
·PHP+JS实现搜索自动提示
·初学Ajax须注意的几个问题
·JavaScript扩展:正则像函数一样调用
·国内外 Java Script 经典封装
·利用JavaScript创建功能强大的GUI
·初学者全面接触学习jquery(译文)
·AJAX实例应用初体验:自动保存草稿
·javascript版的日期输入控件
·Javascript 编程规范
·完美解决一个事件激活多个函数
·Javascript实例教程(20) 使用HoTMetal(4)
·一个非常强大完整的web表单验证程序
·AJAX学习:理解JavaScript函数

 
·[硬件]通话全免费,网聊更轻松! 灵畅USB电话
·[数码]iAUDIO G3电池使用报告
·[汽车]增配又减价 05款索纳塔2.0优惠9000元
·[开发]从Internet上抓取指定URL的源码的方案(
·[资讯]美国研究:“相面”知健康 我中医逐一
·[游戏]惊天动地专区
·[本本]出手不凡 OLPC得到利比亚2.5亿美元大单
·[办公]《喷墨打印机墨盒通用技术规范》近日出
·[手机]不锈钢情结 诺基亚新机6300轻薄上路
·[考试]警惕高校中的非教育成本高消费
·[学院]Windows中IPVv6安全性的思考
·[娱乐]鼹鼠乐乐 2
 

关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net