之前总是碰到JSP页面乱码的问题,每次都是直接去网上搜,然后胡乱改,改完也不明白原因。这次正好做一下总结,中文乱码就是因为编码不符,可能出现乱码有五个地方:
- JSP编码乱码
- HTML编码乱码
- request获取数据乱码
- response输出信息乱码
- Cookie导致的编码问题
下面将会对上面几种情况进行介绍:
JSP乱码
套用之前设计好的html页面遇到的一个问题,就是将静态html文件改成jsp文件的时候,发现浏览器访问该jsp页面时全部都是乱码,使用eclipse调整页面的编码方式,总是调整不过来,如下图所示乱码页面:
解决方法:
- 改成jsp文件时,应该在首行添加<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="utf-8"%> 代表设计jsp页面的编码方式
- <META http-equiv=Content-Type content="text/html; charset=utf-8"> 第二句是设置输出到浏览器,浏览器选择的编码方式
另外:一般JSP文件默认的页面编码和传输编码都是ISO-8859-1,这是用于欧洲国家的编码。可以通过设置Eclipse中JSP的编码格式,来修改默认生成的编码格式。
如果想要支持中文,可以使用UTF-8、GB2312、GBK等,其中UTF-8