`
tubaluer
  • 浏览: 1445378 次
文章分类
社区版块
存档分类
最新评论
  • sblig: c / c++ 是不一样的都会输出 100
    j = j++

AJAX 编码问题分析

 
阅读更多
1、 要发送的内容

格式:xml;编码:utf-8

AJAX

编码:utf-8(req.getCharacterEncoding();读出客户端编码为utf-8)

servlet

编码:缺省(request位设置编码)

结果:

下面代码为XML内容生成代码:


下面代码为AJAX 发送代码:


下面为servlet 代码:



2、 要发送的内容:

格式:xml;编码:gb2312

AJAX

编码:utf-8(req.getCharacterEncoding();读出客户端编码为utf-8)

servlet


编码:缺省(reqest未设置编码)

结果:


可以看出后台能正确解码与XML的编码无关。

3、 要发送的内容:


格式:xml;编码:gb2312

AJAX


编码:位设置(req.getCharacterEncoding();读出客户端编码为null)

servlet


编码:缺省(reqest未设置编码)

结果:

log.debug("encoding=" + encoding); //encoding=null
log.debug("4tempContent=" + new String(tempContent.getBytes("ISO8859-1"),"UTF-8")); //正常

4、 要发送的内容:

格式:xml;编码:gb2312

AJAX

编码:位设置(req.getCharacterEncoding();读出客户端编码为null)


servlet

编码:

结果:

与3相同。可见,req指定编码并不能正常输出,需要转码。并且和使用encodeURIComponent()与否无关(使用一次)。

5、 要发送的内容:

格式:xml;编码:gb2312

AJAX

编码:gbk(req.getCharacterEncoding();读出客户端编码为gbk)


servlet

编码:


结果:

均不能正常解码。

总结

通过实验可以看出,AJAX post数据的编码和数据本身无关,和SERVLET是否设置编码无关:

req.setCharacterEncoding("utf-8")

仅和AJAX使用的编码有关,并且只能是utf-8(不是utf-8有可能吗?):

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");

若自己封装AJAX函数时,不要忘记指定字符集属性:charset=utf-8



分享到:
评论

相关推荐

    Extjs Ajax 乱码问题解决方案

    在Ext的使用过程中,一不留心就出现了乱码,包括在客户端提交给服务器的数据中出现了乱码和服务器端返回给客户端的数据中出现了乱码,下面简单分析一下出现乱码的原因。

    解决ajax回调函数返回的字符串乱码问题

    ServletActionContext.getResponse().setContentType(“text/json;... 您可能感兴趣的文章:jQuery Ajax Post 回调函数不执行问题的解决方法Javascript基于AJAX回调函数传递参数实例分析ajax回调函数中使用$(this)取不到

    【卷一/共两卷】AJAX实战pdf高清版90M

    5.3.1 不使用框架进行简单的Web服务器编码 5.3.2 使用Model2工作流框架 5.3.3 使用基于组件的框架 5.3.4 使用面向服务的架构 5.4 细节:交换数据 5.4.1 仅限于客户端的交互 5.4.2 介绍行星浏览器的例子 5.4.3 从Web...

    基于JSP+Ajax+MyEclipse 2015 Java聊天室软件源码+说明文档.zip

    通过本课程设计的实践及其前后的准备与总结,复习、领会、巩固和运用软件工程课堂上所学的软件开发方法和知识,以此来完成Java聊天室的分析、设计、编码、测试等工作。 1.2. 任务 通过认真阅读老师所给的课程设计的...

    Ajax异步提交数据返回值的换行问题实例分析

    前面分析介绍了《Javascript基于AJAX回调函数传递参数》及《IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别》,学习了ajax回调函数传参与针对不同浏览器处理中文乱码问题的方法。这里就来分析一下ajax异步提交...

    最新-客户关系管理系统-(基于SSH框架+Ajax)

    项目技术和环境简介: Struts1.2、Hibernate3、Spring2.5、Ajax、Dwr、Oracle10g/sql...从需求分析和ER图形基本设计和入手直到编码和测试结束、包含一系列文档! 求有助于对项目整体开发过程的掌握和关键技术的熟悉!

    JS实现Ajax的方法分析

    本文实例分析了JS实现Ajax的方法。分享给大家供大家参考,具体如下: 一、什么是Ajax 不刷新的情况下读取数据或提交数据 (最早出现ajax:谷歌地图,拖动一下出现一片新的视野) 应用:用户注册、在线聊天、微博 ...

    IE浏览器与FF浏览器关于Ajax传递参数值为中文时的区别实例分析

    前面介绍了《Javascript基于AJAX回调函数传递参数》,这里主要来分析一下ajax传递中文参数过程中针对不同浏览器的乱码处理方法。 Ajax传递参数为中文时出现乱码,我遇到的情况是: 1.我的数据库连接 编码为 GB2312,...

    JQuery的Ajax中Post方法传递中文出现乱码的解决方法

    需要用到Ajax,之前我在用GET方式传递中文参数时,只需要在后台程序中设置页面编码为GB2312即中文能正常显示,可是这次由于表单项目较多,不适合用GET方式传递,只能用POST方式,但发现后台程序中设置编码为GB2312时...

    基于AJAX技术的电子商城系统的设计与开发

    而Struts把Servlet、JSP、自定义标签和信息资源整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,更好实现了分层,并节省了时间开发;Hibernate是一个开放源代码的对象关系映射框架...

    jquery通过ajax加载一段文本内容的方法

    这是w3school官网提供的一个简单的例子,注意编码问题,否则可能会出现乱码。代码如下: 代码如下:<html> <head> <meta http-equiv=”Content-Type” content=”text/html;charset=utf-8″ /> ...

    解决ajax+php中文乱码的方法详解

    本篇文章是对ajax+php中文乱码的方法进行了详细的分析介绍,需要的朋友参考下

    ajax教程 在线视频培训教程(含课程源代码)

    讲解ajax的工作原理和实例全国省市区3级联动01-ajax概要和第一个示例02-AJAX 工作原理03-创建 XMLHttpRequest 对象04-使用phpstorm工具来开发05-Get方法和读取中文乱码解决06-Post方法和小坑的解决07-XMLHttpRequest...

    最新Python3.5零基础+高级+完整项目(28周全)培训视频学习资料

    上节作业问题答疑 今日内容计划 CSS内容补充以及后台管理页面布局 后台管理页面布局 JavaScript内容回顾 JavaScript函数 JavaScript序列化及转义 开小差之自动登录抽屉并点赞 eval以及时间操作 JavaScript作用域 ...

    Hadoop气象分析大屏可视化论文和ppt

    完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Hadoop框架、python技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、...

    python疫情分析与可视化平台(源码+数据库)151434

    采取MySQL作为后台数据的主要存储单元,采用python框架、Django技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。...

    基于Java的全国商品零售价格分类指数分析系统的设计与实现【附源码】

    完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用JavaEE框架、JSP技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、...

    js与jQuery实现的兼容多浏览器Ajax请求实例

    主要介绍了js与jQuery实现的兼容多浏览器Ajax请求,以实例形式分别讲述了采用纯js与jQuery实现的兼容多浏览器Ajax请求的方法,并对Ajax中出现的乱码问题进行了一定的分析,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics