乱码是所有初学者最头疼的问题。一看着那乱麻麻的一坨叫不上来的东西确实会很影响心情,这篇文章我将我遇到的所有乱码问题汇总。
1、设置eclipse的编码,建议都使用UTF-8编码。
Window-Preferences-General-Workspace选择其它,选择UTF-8;
2、配置TomCat的编码,修改tomcat下的conf/server.xml文件
找到如下代码:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
//可以在这里添加一个属性:URIEncoding,将该属性值设置为UTF-8,即可让Tomcat)
//可以配置TomCat的默认编码为UTF-8
//修改完成后:
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" />
3、配置mysql等数据库的默认编码,MySql的配置文件Windows下一般在系统目录下或者在MySql的安装目录下名字叫my.ini,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭(mysqld中增加如果出错,可以试character-set-server=utf8)。
4、配置jsp文件编码,这个你可以在写的时候改,最好配置一下免得你每次都要去改了。注意!!我我曾今遇到过两次,同学是在没有将jsp文件的编码改成UTF-8就直接保存,那样你绝对是乱码,而且也不好找,所以最好配置下。
Window-Preferences-web-JSP Files 设置编码UTF-8;
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5、使用Servlet时。加上,或者可以使用过滤器
response.setContentType("text/html; charset=UTF-8")
response.setCharacterEncoding("UTF-8");`
6、设置浏览器的编码,一般浏览器不需要设置编码,让它自动选择就行,也会存在浏览器编码导致的乱码的问题,浏览器版本很多,我以火狐为例 F12 ->查看—>编码选择UTF-8.
7、这可能是我个人遇到的问题,在做多个框架的项目时需要导入很多包Maven还好可以自动导入,如果需要手动添加时一定要注意lib包一定要和你框架版本一样,不然可能会乱码,电脑上有多个版本的一定要注意。
以上是我现在能想的所有了,以后有补充我再添加。