1、jsp中文乱码
<0> 保证jsp输出到客户端的编码,即显示在客户端时的编码,即在浏览器上显示中文
<%@page contentType="text/html; charset=gb2312"%>
<1> jsp 页面,即你的jsp代码中出现中文时
添加下面语句即可
<%@page pageEncoding="GBK"%>
<2> 表单以post方式提交时
2、dojo ajax 提交表单中文乱码
/*回调方法*/ 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"); }