才开始学Javaweb时经常会遇到乱码问题,那么怎样解决呢,首先要知道乱码文字会出现是因为编码和解码的方式不一样。
常见的字符集
常见的几种字符集有utf-8,GBK,GB2312和iso8859-1,其中utf-8是国际编码,GBK和GB2312支持中文字符,但是对其他的字符支持性较差,而iso8859-1是Tomcat的默认字符集但是不支持中文
我们假定页面文件是以utf-8编码保存的
乱码问题的几种解决方式
1.浏览器调用html或servelet等文件时的解决方式
对于html文件:<meta charset="utf-8">
对于jsp文件:<%@ pageEncoding="utf-8"%>
2.通过servlet进行不同页面间的数据交互时的乱码问题
对于post请求,可以直接设置获取数据和传递数据 的编码方式,即
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("utf-8");
这样就保证了编码的一致性
对于get请求,按照上面的方式是不会起作用的,因为get方式传递的参数内容默认编码方式是ISO8859-1,所以我们要通过修改Tomcat的编码方式来解决。
可以通过在server.xml文件的connector标签的最后加上
URIEncoding="utf-8"
来改变Tomcat的默认编码
3.涉及数据库的乱码问题
使用数据库时可能会因为数据库的编码方式和存放数据的编码方式不一样导致乱码,所以在建立数据库时要注意首先应该保证数据库 的编码方式是utf-8,这样才能保证后面的操作不会出问题