在jsp中的text中输入中文,然后在action中,我对scanser参数通过下面的方式进行编码,
try {
scer = new String(scanser.getBytes("gbk"), "UTF-8")
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
当jsp中的text输入的是两个或两个以上的中文时,能够正确编码;而当在text中输入只有单个的中文时(例:‘乱’),则无法编码成功,out.print时是空白的;各位高手看看是什么情况啊?谢谢了
try {
scer = new String(scanser.getBytes("gbk"), "UTF-8")
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
当jsp中的text输入的是两个或两个以上的中文时,能够正确编码;而当在text中输入只有单个的中文时(例:‘乱’),则无法编码成功,out.print时是空白的;各位高手看看是什么情况啊?谢谢了
谢谢了
1.表单提交一律post
2.所有页面编码格式gb2312
3.过滤器过滤所有请求、响应编码格式gb2312
4.实在不行 用String的getBytes("gb2312")转一下
页面里的encoding跟scanser.getBytes()的参数一致。
IDE的encoding与new String的第二个参数一致。
支持8楼的看法。楼主的代码可改为:
try {
scer = new String(scanser.getBytes( "gb2312"), "UTF-8 ");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
httprequest.setCharacterEncoding(this.encoding);
chain.doFilter(request, response);
jsp: url = encode(url);
action: response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8"); 返回来的字符
str.getBytes("页面字符编码","UTF-8");这些处理完了以后,应该是可以的========
public String getSting(String str)
{ //中文处理
if(str==null)
{str="";
}
else
{try
{byte[]b=str.getBytes("ISO-8859-1");
str=new String(b);
}
catch(UnsupportedEncodingException e){
e.printStackTrace();
}
}
return str;
}
比如说你的表单名字是name,
那么name=getString(name);
这样应该就不会出现乱码了!