开发者社区> 涂作权> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

AJAX中文传值乱码问题解决方法

简介: 在软件开发过 程中,乱码问题一直都是我们最头痛的事,页面的编码,开发环境的编码,数据库的编码,有一个不一致都有可能导致乱码问题的发生;有的很好解决,有的很棘 手;当你使用AJAX技术时,为调用的后台方法传值是必不可少的,英文和数字还好解决,一般不会出现乱码,介是如果是要传中文的字符呢?很容易就会乱掉, 因为在你使用编码的时候一般会默认:BG2312,而Ajax默认使用的是UTF
+关注继续查看

软件开发过 程中,乱码问题一直都是我们最头痛的事,页面的编码,开发环境的编码,数据库的编码,有一个不一致都有可能导致乱码问题的发生;有的很好解决,有的很棘 手;当你使用AJAX技术时,为调用的后台方法传值是必不可少的,英文和数字还好解决,一般不会出现乱码,介是如果是要传中文的字符呢?很容易就会乱掉, 因为在你使用编码的时候一般会默认:BG2312,而Ajax默认使用的是UTF-8编码格式,客户端中文字符传输到服务器端时,很可能会出现中文乱码。
  下面我们就讨论一下如何解决咱们在进行软件开发过程中遇到的乱码问题:

  1、如果你不使用Ajax时出现乱码,大多都是页面和后台代码的编码不一致,只要转换一下就好了,可以采用下面两句话:

    request.setCharacterEncoding("UTF-8");
    response.setCharacterEncoding("UTF-8");

  2、如果你使用了Ajax技术时出现乱码,可以使用以下两种解决方法:

  (1)、在浏览器端对要传递的中文参数进行编码处理.代码如下:

  xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化

  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.GET方法可以省略
  xmlhttp.send("str=" encodeURI(encodeURI("安安DIY创作室"))); //向服务器端发送参数

  在服务器端代码:
  PrintWriter out = response.getWriter(); //得到response的输出流对象

  String str = request.getParameter("str"); //得到页面上名字为str的参数
  String str2 = URLDecoder.decode(str,"utf-8"); //对得到的参数进行解码

  out.print(str); //向浏览器端发送数据

  (2)、在浏览器端对要传递的中文参数进行编码处理.代码如下:

  xmlhttp.open("POST","AjaxServlet",true); //请求参数初始化

  xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); //因为请求方式为POST,所以这里要设置请求头.(如果请求方式为GET,此句代码可以省略)

  xmlhttp.send("str=" encodeURI("安安DIY创作室")); //向服务器端发送参数

  在服务器端代码:

  PrintWriter out = response.getWriter(); //得到response的输出流对象

  String str = request.getParameter("str"); //得到页面上名字为str的参数
  String str2 = new String((str.getBytes("ISO-8859-1")),"UTF-8"); //对得到的参数进行解码
  out.print(name); //向浏览器端发送数据

  以上两种方法,在使用Ajax传递中文参数时,乱码问题可以在任意浏览器下解决,正确显示中文。有的只用红色部分那一名代码就好了,如果你有好的办法,一定要到上海软件开发空间我留言哦…共同学习…

转载自安安DIY创作室 http://www.vscsoft.com/
本文链接:http://www.vscsoft.com/post/60.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
asp.net中使用jquery的ajax来post数据的树控件
我相信大部门的.net开发人员还在完全使用asp.net框架开发或者有一部分人是asp.net和asp.net mvc项目都有在做。对于传统的asp.net如果要有好的体验,那么ajax效果当然不可少。
876 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->contains 函数
Array.contains 函数。使用 contains 函数确定某元素是否在 Array 中。在Firefox浏览器中 调用 contains 函数 如果数组中有元素被设置为 undefined且item 为 undefined 则返回 true .其它所有浏览器,在此情况下函数返回 false.以下示例展示了如何使用contains 函数来确定某元素是否在 Array 中。
486 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->clear 函数
Array.clear 函数。使用 clear函数 从 Array对象 中移除所有元素。下面的示例展示了如何使用 clear 函数。文章来源:http://blog.csdn.net/chsword/archive/2007/02/24/1513298.aspx
445 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->addRange 函数
Array.addRange 函数。使用 addRange 函数将一个Array中的元素添加到另一个 Array 的结尾处.如果 items 为不包含任何元素的数组, 则目标数组无变化,且无异常抛出. 注意。
672 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展->add 函数
Array.add 函数。将元素添加到 Array 的结尾处. 本函数是静态函数,使用时无需实例化。语法Array.add(array,文章来源:http://blog.csdn.net/chsword/archive/2007/02/24/1513250.aspx
495 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间->JavaScript 基础类型扩展->Array 类型扩展
Array 类型扩展。提供了基于ECMAScript (JavaScript) 的 Array 对象的扩展.将另一个 Array对象 的元素添加到 Array对象 的末尾。将元素插入 Array 的指定索引处。
602 0
[导入]ASP.NET AJAX 说明文档->客户端引用->全局命名空间
全局命名空间 说明。本部分包含 ECMAScript (JavaScript)扩展的全局对象和其它核心对象. JavaScript 基本类型扩展。文章来源:http://blog.csdn.net/chsword/archive/2007/02/24/1513227.aspx
654 0
ASP.NET AJAX Control Toolkit 新扩展特性:AutoCompleteExtender
一直期待ATLAS能够提供AutoComplete的扩展特性,终于不负众望,在最新版的ASP.NET AJAX Control Toolkit 已经包含了这个特性:AutoCompleteExtender。
788 0
ASP.NET 2.0 AJAX中Webservice调用方法示例
ASP.NET 2.0 AJAX中能够在客户端js中很方便地调用服务器Webservice,以下为一些调用的示例。笔者安装的ASP.NET 2.0 AJAX 版本为AJAX November CTP。
695 0
+关注
涂作权
java,架构,编程语言相关专家
1234
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载