AJAX from提交出现乱码 各种解决方案
来源:互联网 发布:unity3d 室内漫游 编辑:程序博客网 时间:2024/06/05 18:57
小弟最近在做一个移动端的项目 用到了AJAX 在网上各种查资料 但是好像还是没有找到,最后 请教了下我们这的架构师,知道问题的所在
不说那些 我们先说几个问题,因为我的项目所有的都是GBK编码方式
但是ajax通过浏览器指定的编码都是UTF-8的
所有浏览器都是UTF-8编码方式的
如果我们的AJAX是get请求的可以加入两次encodeURL进行转码
这个是在前端 js中做的操作 一定要两次 因为 tomCat会进行一次解码
我们也会进行一次解码
encodeURI(encodeURI(orgName));
java代码中写:
URLDecoder.decode(参数, “utf-8”);
将转换的参数进行解码,这个样子 在get方式的ajax请求不会出现乱码
但是上次小弟用的是POST请求方式 还傻乎乎的用了get方式的转码方式 因为 get方式的转码方式是吧参数附加到 地址后面的所以为什么是URLDecoder这个只能适用于get请求方式。
好post请求方式 其实只要设置一个
request.setCharacterEncoding(“utf-8”); 就可以了 但是这个不能写到控制器上也就是我们直接请求的方式中去设置,要写一个过滤器
下面是我的AJAX请求的URL:
url:”addCustomerInfo.do?_input_charset=UTF-8”,
因为我附加了一个参数input_charset=UTF-8”, 所以会找到对应的拦截器
而这个拦截器只有一个方法:
request.setCharacterEncoding(“utf-8”);
这个样子在进入方式的时候就告诉我们的服务器使用UTF-8的解析方式
最后读到我们的后台,就变成了不会乱码的字符串了,乱码的地方只有读和写,所以就算我的文件都是GBK编码也可以正常使用UTF-8编码转换的字符。
form请求乱码解决:
<%@ page language=”java” import=”java.util.*”
contentType=”text/html; charset=GBK” pageEncoding=”GBK”%>
只需要在jsp第一行加上这个就好了 请记住 你的jsp的编码一定要和 pageEncoding保持一致, contentType=”text/html; charset=GBK”
这个参数是告诉浏览器发送数据的字符集,pageEncoding告诉tomcat用什么字符编码解析 我们的jsp只要 文件本身的编码和这两个参数保持一致 应该不会出现乱码,
还有就是以前 博主一直认为所谓的字符集过滤器 是将某一个字符编码的数据转换到另外一种我们需要的字符编码集,可是后来大哥告诉我,不是那个样子的 所谓的过滤器只是告诉服务器用什么方式去解析请求过来的数据 ,所以说浏览器发送的数据一定要和我服务器解析使用的编码集保持一致才行哦
以上是我花了1天时间也没解决的。
- AJAX from提交出现乱码 各种解决方案
- Jquery ajax Post 提交 乱码解决方案
- jquery ajax 提交给servlet乱码解决方案
- JQuery AJAX提交中文乱码的解决方案
- JQuery AJAX提交中文乱码的解决方案
- JQuery AJAX提交中文乱码的解决方案
- 表单ajax提交出现乱码原因
- Ajax $.ajax() 提交数据出现中文乱码的时候解决方法
- JQuery中Ajax的Post提交中文乱码的解决方案
- JQuery中Ajax的Post提交中文乱码的解决方案
- jQuery-Ajax提交数据中文乱码问题的解决方案
- ajax开发过程表单提交数据出现乱码和解决办法
- ajax、Spring提交表格的时候出现中文乱码
- 解决ajax提交表单出现乱码的问题
- 如何避免ajax提交数据出现中文乱码
- 各种ajax提交
- form提交乱码,解决方案
- Ajax表单提交乱码
- C++ 第二次上机实验
- Oracle EBS中设置项目字段必填
- CASpringAnimation使用和属性解析
- C++第一次实验1-1
- 最小生成树-Prim算法和Kruskal算法
- AJAX from提交出现乱码 各种解决方案
- 关于动态更新 安卓 TExtview的 代码
- Redis安装和启动
- [树链剖分 线段树 标记永久化] BZOJ 4515 [Sdoi2016]游戏
- svn“Previous operation has not finished; run 'cleanup' if it was interrupted“解决方法
- 使用Cocos开发一款简单的3D VR抓钱游戏
- BLE蓝牙在Android开发中的应用(一)
- 解决Android签名混淆后WebView与JS交互失效的问题
- Hbase总结(六)hbase37个笔试题