jsp字符集转换
一、页面字符集转换
jsp中通常需要在第一行放置如下代码:
<%@ page contentType="text/html; charset=GB2312" %>
该行代码的作用是告诉jsp引擎(如tomcat、resin等),本页面使用的字符集是GB2312。如果jsp页面中包含有汉字,一定要包含本行代码。否则jsp引擎使用默认的字符集,这可能会导致jsp输出页面乱码。
同时jsp输出页面的字符集为GB2312,如果要按其他字符集输出,只需使用:
response.setContentType(“页面类型”);
例如:wap中通常要求页面按utf-8输出,只需把response的ContentType设置为utf-8即可,设置语句为:
response.setContentType(“text/html; charset=utf-8”);
jsp引擎会自动把输出的页面转换成指定的字符集。
二、参数值字符集转换
在jsp中,可以使用request.getParameter(“参数名”)获得参数值,参数值的默认字符集是ISO8859_1,如果不进行字符集转换,将导致汉字乱码。
通常的做法:
String szUserName = request.getParameter(“username”);
szUserName = new String(szUserName.getBytes(“ISO8859_1”), “GB2312”);
这种做法的缺点可能会包含汉字的参数值都需要转换,容易遗漏,代码量也相应增加了。
另外一个简便的方式是:在获取参数前,调用:
request.setCharacterEncoding(“GB2312”);
该语句的作用是告诉jsp引擎,页面参数采用的是中文编码,由jsp引擎自动完成字符集转换。然后,程序中直接调用request.getParameter(“参数名”)即可获得参数值,不需要再次进行字符集转换。
欢迎转载,请注明出处:亲亲宝宝