本来一个很基础的问题,可是因为俺到公司这一年半的时间基本没有接触Java/JSP的相关内容,搞得今天丢人了,后台组一同事MM过来问我一个有关乱码的问题,一涉及到Java/JSP的问题就有点心虚,可是人家对咱似乎还是蛮有信心的,只好过去了,结果还是丢人了。
就是这样一个很简单的问题:一个jsp页面,通过url传参,在jsp中通过request.getParameter获取并输出,页面编码是GBK,在Jsp顶部声明了<%@ page contentType="text/html;charset=gbk" language="java" %>,结果一传入中文参数,就输出一对不知所以然的问号,乱码问题...可是页面就如此简单,还搞得我给人家分析了一些不知道所以然的原因,汗..。最后只好搜索引擎求助,发现这还真是JSP的一个经典的基础问题。尽管俺可能基本不会做这种JSP的相关技术,但这次也算是一次知识的长进,有必要整理到我的日志中。
为编码为GBK的JSP页面传参,对于中文乱码的解决分为两种情况:
- 通过GET方式传参,通过new String(request.getParameter("").getBytes("ISO-8859-1"),"GB2312"); 的方式转换为需要的编码,如GBK/GB2312等。
- 通过POST方式传参,通过声明request.setCharacterEncoding("GBK");的方式声明编码类型来解决。
网名:网者归来、yemoo,长期并将继续投身于WEB前端相关技术的学习和推广的大军中,目前就职于杭州