jquery ajax 中文乱码

jquery ajax 中文乱码

结论:

jquery 1.3.2 ajax对编码问题进行过部分(见后面补充1 )处理,解决方案以jsp为例子:
ajax提交数据给jsp:ajax所在页面无任何要求,jsp页面需作两方面处理。
1.<%@page contentType="application/json" pageEncoding="UTF-8"%>或<%@page contentType="application/json" pageEncoding="gb2312"%>
2.处理request.setCharacterEncoding("UTF-8")

详细说明:

之所以会乱码,原因很简单,两个人对话的时候,a说中文,b用英文接受,于是乎乱码矣! 所以当出现乱码搞清楚谁是a谁是b很重要,然后a说话的时候让b知道应该用什么语言接收,或者b以固定的方式接收,a用b接收的语言去说,这样就万事ok了。 所以下面分成两部分去分析。一个是ajax单纯获取网页信息的情况,一个是ajax单纯往jsp等提交数据的情况,细的来说,这里种情况有分两种情况即post和get

ajax单纯抓取网页

a:请求的页面,b:jquery ajax
这里为什么a是请求的页面,而b是jquery ajax呢?虽然是ajax向页面要东西, 但是也可以理解为a(页面)要告诉ajax的内容是什么,于是乎a说,我告诉你b(jquery ajax),我的内容是......并且内容的语言是gb2312的,你来接受吧。 于是b就根据他的编码格式接收了a的内容,于是就没乱码了。看一下下面的表格

 

 

当前页面编码js请求页面编码中文乱码解决方安/说明
gb2312jquery ajax 获取数据gb2312是 jsp:<%@page contentType="application/json" pageEncoding="gb2312"%>这里用的json作测试,与text/html应该一样
aps:Response.Charset="gb2312"(参照网络未测试)
php:header("Content-Type:text/html; charset=gb2312");(参照网络未测试)
html:未解决
gb2312jquery ajax 获取数据utf-8否
utf-8jquery ajax 获取数据utf-8否
utf-8jquery ajax 获取数据gb2312是 jsp:<%@page contentType="application/json" pageEncoding="gb2312"%>这里用的json作测试,与text/html应该一样
aps:Response.Charset="gb2312"(参照网络未测试)
php:header("Content-Type:text/html; charset=gb2312");(参照网络未测试)
html:未解决

 

首先说明,上面说的页面编码,是指文件字符编码,而不是html里面<meta>标签内的charset=gb2312。根据以上数据显示:ajax抓去网页的时候,乱码问题与当前页面(ajax所在页面)无关。
对于普通的html文件,乱码不在于当前ajax所页面而在于被抓去的页面,如果被抓取的页面为gb2312就必须在文件头声明:pageEncoding="gb2312",

ajax单纯提交数据到jsp页面(post)

a:ajax, b:jsp

提 交数据的时候,jquery使用ajax方法,type: "post",data:{test:"hello你好"},jsp页 面:pageEncoding="gb2312"/pageEncoding="UTF-8"都可以,根据具体返回的需要了。这里建议大家debug的时 候看变量是否乱码,因为如果看jsp页面,实际上又增加了一个编码过程

ajax单纯提交数据到jsp页面(get)

这 里需要注意,type: "get",的时候,由于涉及到url的编码问题(详细见下面的参考文章:深入浅出URL编码), 所以需要在jsp接收数据的时候加下面这句:request.setCharacterEncoding("UTF-8"); 注意这里一定要是UTF-8,而pageEncoding参数无论是UTF-8还是gb2312都可以。(因为这个pageEncoding主要对请求后 返回的内容编码起作用) 而对于java web开发,request.setCharacterEncoding("UTF-8")(注:根据“深入浅出URL编码”这个设置应该针对post设 置而不是get,但在我测试的时候这样设置的确在post的时候不需要而get的时候就可解决乱码问题。)可以使用filter,或者struts2进行 全局解决, 根据网上的说法,好像还可以设置tomcate的配置解决这个问题。

 

当然有一些解决方法是局部进行转码和解码,如js部分通过:escape或encodeURI方式将中文编码,然后到了jsp/php/asp再通过一定方法实现对该数据的解码,这种局部的方案,只能作临时解决方案。

 

我以上所说可能有很多漏洞,甚至错误,但是我的确都在suse linux/firefox 3 默认utf8编码 jdk 1.6.10 glassfish v2 环境下实验过。 之所以写出来,是给大家一个参考,或者说一个提示,如果大家这样作,还是有乱码,请变通尝试其他方法,参考下面给出的参考文章列表。另外编码问题还涉及到不同的浏览器不同的设置。如果搞明确了一些编码设置,请过来批评,我好改正,谢谢:)

 

更正补充:

 

1.jquery ajax 对data参数有如下判断处理:

if (s.data && s.processData && typeof s.data != "string")

s.data = jQuery.param(s.data);

就是说他检查data参数是否是string,并且processData是否为true,此参数默认为true

 

jQuery.param(s.data)内部会作的处理就是:将数据进行encodeURIComponent(key/value)编码后组装。

 

所以当 data = {"name":"你好"},processData = true

服务器将接收到:name=%E4%BD%A0%E5%A5%BD

 

令我不解的是,当我用jersey做的rest web service通过post接收的时候接收到name=%E4%BD%A0%E5%A5%BD,就是说post什么接收到了什么,这个很正常。

而jsp设置了request.setCharacterEncoding("UTF-8");pageEncoding="UTF-8",就自动转换成了name=您好

不知道这个转换过程是谁做的?请明白的人帮忙解释一下

 

 

 

 

参考文章:
Ajax中文乱码原因分析及解决方案 [转]
深入浅出URL编码

新华DCS系统仿真测试方法详细介绍 新华DCS ICAN3.1系统是应用广泛并且功能非常强大的国产DCS系统。具有管理虚拟CPU并仿真运行的功能。并且上位机画面可以与虚拟DPU数据实时同步仿真。具体仿真方法如下所示: 1、 需要设备及软件: 2、步骤如下: 2.1硬件步骤: 1)电脑开机。 2)交换机连接电脑网卡。 3)交换机上电运行。 2.2软件步骤: 1)设置电脑IP 一般配置IP为A网工程站IP。 222.222.221.201/255.255.255.0 2)建立虚拟DPU 登录 D:\iCAN\Program\Vxcu 文件夹。 阅读详情

相关推荐

Qt Creator菜单栏消失的终极修复指南:从快捷键冲突到设置恢复

本文详细解析了Qt Creator菜单栏消失的常见原因及修复方法,包括快捷键冲突排查、配置文件重置和界面模式切换等解决方案。特别针对Qt开发者遇到的菜单栏显示问题,提供了从简单快捷键操作到深度配置修改的全方位指南,帮助用户快速恢复Qt Creator的正常使用。

weixin_27240351的博客 338

中文乱码

中文乱码

小强快跑~~ 9110

RK3588平台-ES8388音频驱动调试与设备树配置实战

本文详细解析了在RK3588平台上调试ES8388音频驱动的实战过程。内容涵盖Linux音频驱动的三层架构(Machine、Platform、Codec),并重点提供了设备树(DTS)的完整配置示例,包括I2C节点、声卡节点及音频路由设置。文章还分享了驱动加载验证、amixer调试命令以及常见问题(如无声、变调)的排查思路,旨在帮助开发者快速完成RK3588与ES8388的音频系统集成。

mango的博客 806

中文乱码的原因及解决方法

1、我们常用的编码表:   ASCLL:美国标准信息交换码      --->用一个字节的7位可以表示 ISO8859-1:拉丁码表、欧洲码表     --->用一个字节的8位来表示 GB2312:中国的中文编码表 GBK:中国的中文编码表的升级。       --->一个汉字用两个字节表示,每个字节的高位是1,所以汉字的byte形式是负数。 Unicode:国际标准码,融合了多种

u011521890的专栏 55万+

用Isaac Sim复现经典案例:手把手教你写Python脚本控制机械臂抓取(附避障算法调试心得)

本文详细介绍了如何使用NVIDIA Isaac Sim仿真系统复现机械臂抓取经典案例,包括Python脚本编写、避障算法调试等关键步骤。通过URDF模型导入、关节控制逻辑实现和RMPFlow避障配置等实战演示,帮助开发者快速掌握机器人仿真技术,特别分享了官方文档未提及的实用调试技巧和性能优化策略。

weixin_30632089的博客 407

第4章 本地一键部署(新手首选)

本文介绍了OpenClaw的本地部署方法,特别适合新手用户。部署过程仅需执行一条命令,通过自动脚本完成安装和配置向导。安装完成后,用户可通过终端TUI或Web控制面板验证部署是否成功。文章还提供了常见问题的排查方法,包括端口占用、权限不足、APIKey无效和安装卡顿等情况。整个部署流程简单直观,无需手动修改配置文件,适合快速搭建使用。

eastyuxiao的专栏 193

java request乱码_javaweb中中文乱码解决方法总结之response和request解决方法

一中文论码问题出现的由来之所以会产生乱码问题,不仅仅是中文乱码,其原因就在于:编码和解码采用了不同的码表。而之所以会有编码和解码这一回事,也是因为,无论数据是在传输还是存储等等过程中,都是以字节的方式在运行,所以就有了编码问题,又因为技术发展,各国国情等等各方面的因素导致了这个世界上产生了很多种编码方式。二常见的编码方式1ISO-8859-1拉丁编码,供西方那帮哥们用的,里面压根就没有中文编码,所...

weixin_42628846的博客 723

天龙八部源码深度解析:从宠物系统到副本机制(C++游戏开发实战)

本文深度解析《天龙八部》源码架构,重点剖析宠物系统状态机实现与副本动态加载机制等核心模块。通过C++代码示例展示宠物AI状态迁移逻辑和副本场景管理技术,为现代游戏开发提供兼容性改造方案与设计启示。适合游戏开发者学习经典MMORPG的工程化实现路径。

weixin_29011239的博客 386

常见中文乱码问题以及解决方案(web版)

在平常我们开发的过程中,可能会遇到各种各样的问题,其中中文乱码问题是最普遍最麻烦的,因为寻常的中文乱码会有各种形式,有前端原因,也有后台原因,所以需要具体问题具体分析。下面将从几个常见乱码问题入手,分析其原理,给出解决方案,以便到后续开发中能够尽量避免此问题的发生。目录引言一、问题阐述与分析 1.1 IDEA控制台乱码问题 1.2 页面乱码问题 1.3 前台参数乱码问题 1.4 数据库插入乱码问题 1.5 服务器乱码问题 1.6 ​​​​​​​CSV等文件中文乱码问题 ​​​​​​​1.7 ​​​​​​​U

qq_42374880的博客 4万+

Open5GS实战:从零搭建树莓派5G核心网并与商用终端联调

本文详细介绍了如何在树莓派5上从零开始搭建基于Open5GS的5G核心网,涵盖系统准备、依赖安装、源码编译、关键配置修改及服务启动全流程。通过整合SDR基站与商用终端进行端到端联调,为开发者和研究者提供了一个低成本、可实践的5G网络实验平台,助力物联网与边缘计算应用的本地化测试与验证。

weixin_29194255的博客 160

Android keymint(keymaster)一RKP

Android RKP

weixin_47139576的博客 1万+

乱码

主要内容 1. 字符编码理论简述 1.1 ASCII 1.2 ISO8859-1 1.3 Unicode 1.4 GBK 2. 可能发生的中文乱码 2.1 中文变问号,如:??? 2.2 中文变奇怪字符,如:ä½ å¥½ 或者 ÄãºÃ 2.3 中文变“复杂中文”,如:浣犲ソ 2.4 中文变成一堆黑色菱形+问号,如...

Java日常记录 1万+

Python之美——Python2与Python3多版本共存

Python多版本共存的方法Python2、Python3共存的方法python2下载及环境变量配置第一步、打开Python官网,下载Python2第二步、python2环境变量配置测试结果 Python2、Python3共存的方法 方法如下: 1.先确保不同版本解释器的python.exe所在的路径在环境变量中 2.拷贝各自的python.exe并重命名即可 步骤(理解不了下面有图示): 1、首先你需要将不同的python版本安装,且都已经将跟版本的环境变量配置好了,python3和2的下载方式

chenchen5152的博客 3946

jQuery ajax 提交表单中文乱码的问题

jQuery ajax 提交表单中文乱码的问题                           解决方法:                                                        前端:js中                                                        原因:.serialize()自动调用了e

小七的博客 4299

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

php jquery ajax 乱码问题,如何解决jquery ajax中文乱码问题

jquery ajax中文乱码的解决办法:1、若客户端是gb2312编码,则在服务器指定输出流编码;2、服务器端和客户端都使用utf-8编码。本教程操作环境:Dell G3电脑、Windows7系统、jquery1.10.0版本。jquery ajax乱码问题产生乱码的原因:1、xtmlhttp 返回的数据默认的字符编码是utf-8,如果客户端页面是gb2312或者其它编码数据就会产生乱码2、po...

weixin_33436866的博客 337

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

jquery ajax 返回中文乱码问题,JQuery ajax 返回json时出现中文乱码该如何解决

使用jQuery ajax调用的返回json,中文乱码问题Js代码如下:$.ajax({url: '/test/testAction.do?method=test',type: 'POST',dataType: 'json',timeout: 5000,async: false,error: function(){alert('获取数据失败!');},success: function(json)...

weixin_42299756的博客 494

ajax请求中文乱码JQUERY,JQuery发送ajax请求时中文乱码

先排除项目故障:1.web.xml中是否配置了字符拦截器encodingFilterorg.springframework.web.filter.CharacterEncodingFilterencodingutf-8forceEncodingtrueencodingFilter/*2.jsp页面是不是utf-8顺便也加上这个标签,统一发送utf-8,不过听说有些鸡肋3.在排除了故障后,将ajax...

weixin_31100517的博客 559

ajax html页面传值乱码,jquery.ajax的url中传递中文乱码问题的解决方法_jquery

JQueryJQuery默认的contentType:application/x-www-form-urlencoded这才是JQuery正在乱码的原因,在未指定字符集的时候,是使用ISO-8859-1ISO8859-1,通常叫做Latin-1。Latin-1包括了书写所有西方欧洲语言不可缺少的附加字符。JQuery的Ajax根本没有考虑到国际化的问题,使用了欧洲的字符集,所以才引起了传递中文出现...

weixin_31286719的博客 257

asp ajax 500乱码,Asp中使用JQuery的AJAX提交中文乱码解决方法

在ASP开发中,我们可能会接触到JQuery和AJAX,然而这个时候也可能导致程序员混乱,下面好好看看爱站技术频道小编带给大家的Asp中使用JQuery的AJAX提交中文乱码解决方法吧!客户端页:client.html复制代码 代码如下:??? //jquery.html" target="_blank">jquery的post??? $.post??? (??????? 'server.a...

weixin_39732506的博客 242

jquery 乱码 传参_jquery的ajax()函数传值中文乱码解决方法介绍

jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下代码如下:$.ajax({dataType : ‘json',type : ‘POST',url : ‘http://localhost/test/test.do',data : {id: 1, type: ‘商品'},success : function(data){ } } );问题:提交后后台action程序时,取到...

weixin_39870132的博客 107

JQuery Ajax Post传递中文乱码

JQuery Ajax Post传递中文乱码 ajax与jquery.ajax中文参数post传递乱码处理方法 今天在做项目时,需要用到Ajax,之前我在用GET方式传递中文参数时,只需要在后台程序中设置页面编码为GB2312即中文能正常显示,可是这次由于表单项目较多,不适合用GET方式传递,只能用POST方式,但发现后台程序中设置编码为GB2312时中文还是显示的乱码。经过一

Java Dynamic的专栏 1万+

ajax访问servlet乱码,jquery ajax到servlet出现中文乱码(utf-8编码下)

个人遇到的该问题有两大类:第一类很普遍,就是jsp页面编码没有规定,servlet中接收参数没有转码,response没有使用setContentType()和setCharacterEncoding等等原因造成的,这种问题网上有很多帖子互相抄袭,我只谈第二类;第二类是使用jquery的ajax功能向后台发送中文参数,后台接收到乱码,我出现这个问题就是拜网上的各种所谓完美解决方案所赐。产生这种问题...

weixin_39814088的博客 510

java ajax json 乱码_jquery+ajax返回json中文乱码现象怎样处理

这次给大家带来jquery+ajax返回json中文乱码现象怎样处理,处理jquery+ajax返回json中文乱码的注意事项有哪些,下面就是实战案例,一起来看一下。使用jQuery ajax调用的返回json,中文乱码问题Js代码如下:$.ajax({url: '/test/testAction.do?method=test',type: 'POST',dataType: 'json',time...

weixin_42138788的博客 159

jquery ajax IE下中文乱码

jquery ajax IE下中文乱码 LT_刚 0 票 221 JSP和服务都使用的UTF-8编码,设置了拦截器进行UTF-8转码,JSP中如果使用Form提交Action,不会出现乱码问题,但如果使用jQuery的ajax就会出现乱码,ajax如下: /* $.ajaxSetup({ conten

yulei0524的专栏 1415

jQuery AJAX中文乱码问题

1. jQuery AJAX 请求,后台收到为乱码可以显式设置contentType的编码为utf-8, 后台一般都能正常解码例如:[javascript] view plain copy &lt;meta name="content-type" content="text/html; charset=UTF-8"&gt;   &lt;script type="text/javascript"&g...

qq_36306640的博客 1680
上一篇: jquery 1.3.2 study 附实例
下一篇: opensuse 11.1 linux VirtualBox 网络配(Host Interface)
xiaoxinphp
博客等级 码龄18年 1粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值