ajax后台返回数据中文乱码_使用 AJAX 向后台传递中文 或 从后台返回中文数据 乱码问题...

本文介绍了使用Ajax处理中文参数和返回数据时遇到的乱码问题及其解决方案。在发送中文参数时,需对中文进行UTF8编码;在后台接收时进行GBK解码。同样,后台返回中文数据时,设置响应内容类型为GBK,以确保前端能正确解析。
摘要由CSDN通过智能技术生成

在用Ajax向action发送请求时,如果传过去的中文参数或者返回的中文编码不是UTF8的话,会出现乱码。因为AJAX默认都是用UTF8发送的。

解决方案:

Ajax发送中文参数后台收到是乱码问题:

由于Ajax是按UTF8发送,那么在用get方法发送中文参数前要对中文进行编码,例如,

前台JS页面(GBK环境):

var idiomName = $(this).children().html();//得到汉字

idiomName =

encodeURI(idiomName);//进行编码,但是默认只能以UTF8方式进行编码

$.get("getInfo.do",{value:idiomName},function(data,status){}//传输转码后的中文

发送后,在后台接受时要再次进行转码,后台java文件(GBK环境):

request.setCharacterEncoding("GBK");

String value = request.getParameter("value");

value=java.net.URLDecoder.decode(value,"utf-8");//进行转码,注意这里也为UTF8

System.out.println(value);//正常的汉字

后台向Ajax请求返回的是中文,前台收到是乱码问题:

在PrintWriter out =

response.getWriter();前加上response.setContentType("text/plain;charset=GBK");

就可以保证返回的文本类型编码是GBK

response.setContentType("text/plain;charset=GBK");

PrintWriter out = response.getWriter();

out.write(str);

out.close();

其中response.setContentType()的String参数及对应类型包括:

value="image/bmp">BMP

value="image/gif">GIF

value="image/jpeg">JPEG

value="image/tiff">TIFF

value="image/x-dcx">DCX

value="image/x-pcx">PCX

value="text/html">HTML

value="text/plain">TXT

//普通文本

value="text/xml">XML

value="application/afp">AFP

value="application/pdf">PDF

value="application/rtf">RTF

value="application/msword">MSWORD

value="application/vnd.ms-excel">MSEXCEL

value="application/vnd.ms-powerpoint">MSPOWERPOINT

value="application/wordperfect5.1">WORDPERFECT

value="application/vnd.lotus-wordpro">WORDPRO

value="application/vnd.visio">VISIO

value="application/vnd.framemaker">FRAMEMAKER

value="application/vnd.lotus-1-2-3">LOTUS123

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值