[原创] MySQL支持UTF-8编码全攻略
2005-05-19 19:43
274 查看
最近看到好多关于MySql支持utf-8编码的问题,刚好自己也要用,去找了一下,没有写的很全面的。
整理了一下,供大家参考。
在一下服务器设置测试通过
服务器配置:
window2000
Tomcat 4.1,5.19
Mysql 4.1, 5.0
Java语言,JDK1.4.2
数据库驱动mysql-connector-java-3.0.10-stable-bin.jar
Struts1.1
开始前先看提示
MySQL数据库的4.1是一个分水岭,4.1直接支持Unicode,以下版本支持的不好;
MySQL JDBC Driver的3.0.16也是一个分水岭,3.0.16版本会取数据库本身的编码,然后按照该编码转换,这种方式和Oracle的JDBC Driver是一样的。例如你的数据库是GBK编码的话,JDBC Driver就会把数据库里面的取出来的字符串按照GBK往unicode转换,送给JVM。因此正确的设置数据库本身的编码就尤为重要。
MySQL JDBC Driver3.0.16以下的版本则不然,它不会那么智能的根据数据库编码来确定如何转换,它总是默认使用ISO8859-1,因此你必须使用 characterEncoding=GBK来强制他把数据库中取出来的字符串按照GBK来往unicode转换。
因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:
1) 正确的设定数据库编码,MySQL4.0以下版本的字符集总是默认ISO8859-1,MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)
2) 使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8
开始设置:
1.打开WinMysqlAdmin管理器,选择my.ini设置项,在[mysql]段加入一下代码
default-character-set=utf8
设置后重新启动MySQL服务。
再打开 WinMysqlAdmin管理器,选择Variables项,查看一下变量的值是否如下
character_set_server = utf8
character_set_system = utf8
character_set_database = utf8
character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
如果不能重启Mysql服务,则可能拼写错误,检查一下
以上变量的值都符合,恭喜你,设置成功
2.Java中调用数据库连接方法如下
jdbc:mysql://192.168.1.87/mytest?useUnicode=true&characterEncoding=utf8
如果驱动使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8
3.在页面提交数据处理请看 "中文问题","struts国际化问题"——终极解决方案 一文,非常清楚
4.完成以上三步,你的系统就可以运行与UTF-8编码环境了。
整理了一下,供大家参考。
在一下服务器设置测试通过
服务器配置:
window2000
Tomcat 4.1,5.19
Mysql 4.1, 5.0
Java语言,JDK1.4.2
数据库驱动mysql-connector-java-3.0.10-stable-bin.jar
Struts1.1
开始前先看提示
MySQL数据库的4.1是一个分水岭,4.1直接支持Unicode,以下版本支持的不好;
MySQL JDBC Driver的3.0.16也是一个分水岭,3.0.16版本会取数据库本身的编码,然后按照该编码转换,这种方式和Oracle的JDBC Driver是一样的。例如你的数据库是GBK编码的话,JDBC Driver就会把数据库里面的取出来的字符串按照GBK往unicode转换,送给JVM。因此正确的设置数据库本身的编码就尤为重要。
MySQL JDBC Driver3.0.16以下的版本则不然,它不会那么智能的根据数据库编码来确定如何转换,它总是默认使用ISO8859-1,因此你必须使用 characterEncoding=GBK来强制他把数据库中取出来的字符串按照GBK来往unicode转换。
因此,使用什么数据库版本,不管是3.x,还是4.0.x还是4.1.x,其实对我们来说不重要,重要的有二:
1) 正确的设定数据库编码,MySQL4.0以下版本的字符集总是默认ISO8859-1,MySQL4.1在安装的时候会让你选择。如果你准备使用UTF- 8,那么在创建数据库的时候就要指定好UTF-8(创建好以后也可以改,4.1以上版本还可以单独指定表的字符集)
2) 使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8
开始设置:
1.打开WinMysqlAdmin管理器,选择my.ini设置项,在[mysql]段加入一下代码
default-character-set=utf8
设置后重新启动MySQL服务。
再打开 WinMysqlAdmin管理器,选择Variables项,查看一下变量的值是否如下
character_set_server = utf8
character_set_system = utf8
character_set_database = utf8
character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
collation_connection = utf8_general_ci
collation_database = utf8_general_ci
collation_server = utf8_general_ci
如果不能重启Mysql服务,则可能拼写错误,检查一下
以上变量的值都符合,恭喜你,设置成功
2.Java中调用数据库连接方法如下
jdbc:mysql://192.168.1.87/mytest?useUnicode=true&characterEncoding=utf8
如果驱动使用3.0.16以上版本的JDBC Driver,那么你就不需要再写什么characterEncoding=UTF-8
3.在页面提交数据处理请看 "中文问题","struts国际化问题"——终极解决方案 一文,非常清楚
4.完成以上三步,你的系统就可以运行与UTF-8编码环境了。
相关文章推荐
- MySQL支持UTF-8编码全攻略
- MySQL支持UTF-8编码全攻略
- MySql支持utf-8编码的问题
- python,mysql,MySQLDb支持中文(utf-8编码)
- ubuntu14.04下mysql5.5支持utf-8编码格式配置文件修改步骤
- MySQL不支持中文、将编码修改为utf-8,仍不支持中文问题解决方案
- UTF-8编码问题总结:HTML,PHP,MYSQL,JS,FLASH
- Robotframework 调XML库解析xml文件时只支持utf-8编码格式的问题
- Mysql支持emoji 表情符号 升级编码为UTF8MB4
- MySQL创建数据库时判断是否存在,mysql create database 指定utf-8编码
- ubuntu16.04下mysql5.7支持utf-8编码格式配置文件修改步骤
- Mysql5.5中设置utf-8编码、大小写、root启动的问题
- MYSQL中让UTF-8编码的字段按拼音排序
- 解决MySQL中UTF-8编码的数据在命令行显示乱码
- Linux 下将 MySQL 编码转换至 UTF-8 的实例
- mysql客户端窗口的编码怎么改成UTF-8的
- Linux中 Mysql 14.14 数据库编码修改为utf-8
- mysql设置UTF-8字符编码(Ubuntu)
- NVelocity 0.5.0.1 发布,支持模板包含 UTF-8 编码的字符
- mysql 5.5编码由latin1改为utf-8