#编码
两种常用:UTF-8和GBK。
##GBK
中国通用,占内存小,一个汉字2个字节,UTF-8世界通用,占内存大,一个汉字3个字节。
##UTF-8
有两种写法,UTF-8和utf8,除了MySQL里的SQL语句里用utf8之外,全部用UTF-8
建议只要有编码,统一用UTF-8
#方案
##mysql
在MySQL安装目录下打开my.ini,
用wamp的可以在[client]节点下添加 default-character-set=utf8
,在[mysqld]节点下添加
character-set-server=utf8`
collation-server=utf8_general_ci
这时可以验证下是否生效
mysql> show variables like 'char%';
##JSP文件
放到<head></head>
中
//设置jsp文档编码
<%@ page pageEncoding="UTF-8" %>
//设置网页解析时编码
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
##Servelet 文件(java文件)
//控制JAVA访问数据库编码
url = "jdbc:mysql://127.0.0.1:3306/water?useUnicode=true&characterEncoding=UTF-8";
//控制JAVA给JSP页面返回值的编码
response.setContentType("text/html;charset=UTF-8");
##IDE
Eclipse/Myeclipse
window->preferences->General->Content Types
窗口->首选项->通常->内容类型
一个一个点,只要看到有编码就改成UTF-8
##Tomcat配置文件
单独Tomcat
安装目录下,conf文件夹下server.xml:
myeclipse自带Tomcat
工作空间/metadata/.me_tcat/conf:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>
//因为cmd是GBK,所以只有这个可以设置为GBK,其余都UTF-8
//如果GBK出错,可以改UTF-8试试
###热启动
原本更改servelet
后,tomcat需要重启才能生效,配置热启动边改遍生效。路径conf/context.xml
更改<Context>
为<Context reloadable="True">
PHP与之类似,只要注意文档本身编码、浏览器解析时编码、服务器提交表单编码、数据库自身编码这几个逐一排查即可。
asp,net的Sqlserver很少出现过乱码问题