中文乱码 我的总结 不断更新

本文详细介绍了如何解决Java环境中常见的中文乱码问题,包括在JSP页面中正确配置编码,以及处理Dojo AJAX提交表单时的字符集转换。
java中文乱码问题

[b]1、jsp中文乱码[/b]
[b]<0>[/b] 保证jsp输出到客户端的编码,即显示在客户端时的编码,即在浏览器上显示中文
<%@page contentType="text/html; charset=gb2312"%>

[b]<1>[/b] jsp 页面,即你的jsp代码中出现中文时
添加下面语句即可
<%@page pageEncoding="GBK"%>

[b]<2>[/b] 表单以post方式提交时
<form method="post">.......</form>

[b]2、dojo ajax 提交表单中文乱码[/b]
/*回调方法*/			
function handler(response){
alert(response);

}
/*提交表单*/
function submitForm(){
dojo.xhrPost({
form: document.forms[0] ,
handleAs: "text" ,
handle: handler,
sync: true
});
return false;
}

后台代码

new String(request.getParameter("name").getBytes("utf-8"),"GBK");//这种方式没有测试过,或者这样才是对的
request.getParameter("name");
//dojo 提交表单时,编辑方式为utf-8,


如果是有filter,将编码设置为了 GBK,则应该这样写,即将filter中设置的编码方式再转回来

new String(request.getParameter("name").getBytes("GBK"),"utf-8");//测试过
//dojo 提交表单时,编辑方式为utf-8

/*这样做不正确,有的汉字还是会乱码,一定要确保在filter中
这样才能正确
*/
request.setCharacterEncoding("utf-8");
//可以这样做:

String a = request.getQueryString();
if(a==null || a.indexOf("AjaxEncoding=utf-8")==-1){
request.setCharacterEncoding("GBK");
}else{
request.setCharacterEncoding("utf-8");
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值