web开发中的乱码处理

1. 使用jquery的ajax方式提交请求时, 如果不指定type: "post", 那么ajax默认就使用get方式提交, ie会使用gbk编码,而其它浏览器会使用utf-8编码, 

而在服务器端默认情况下,会使用iso-8859-1进行解码。如果,提交的参数中有中文, 那么在后台服务器程序中,就会出现中文乱码,

归根揭底,这个还是由于客户端与服务器端编码不一致造成的.

解决方式:

   在服务器端进行编码设置, 对于tomcat,可以修改conf/server.xml文件,添加 URIEncoding=utf-8,然后重启服务器,这种方式只是所有get请求有效.

 

2. 如果使用ajax对象发送post请求,服务器端仍然是使用iso-8859-1编码的,这时要 在服务器 端的程序中进行处理,如果使用的是servlet开发可以
    增加request.setCharacterEncoding("utf-8"); 如果采用其它方式(如struts2),

   在程序中可以将接收到的参数进行转码,
   String  parmater = new String(receiveParamater.getBytes("ISO-8859-1"),"utf-8");

 

3. 链接地址包含了中文参数值,如何处理?
        如果链接地址包含了中文参数值,浏览器会按照打开该 页面的编码格式来对中文参数值进行编码。
    解决办法:
        方式一:
            step1, 服务器设置 URIEncoding=utf-8
            step2, 保证页面打开的编码是utf-8 (例如在.jsp文件第一行增加
    <%@page pageEncoding="UTF-8" contentType="text/html;UTF-8"%>
        方式二:
            step1, 服务器设置 URIEncoding=utf-8
            step2, 对中文参数值使用URLEncoder.encode
            方法进行utf-8编码。

 

 

转载于:https://www.cnblogs.com/david-rui/p/3400947.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值