MySQL支持UTF-8编码全攻略

原创 2005年05月28日 16:38:00
 

最近看到好多关于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编码环境了。

python,mysql,MySQLDb支持中文(utf-8编码)

只要使用utf-8编码,就可以支持中文。我们的软件都是跑在linux上面的,都是utf-8,所以支持中文就是如何支持utf-8的。 python默认编码:是系统编码,所有有些机器不是utf-8的(可能...

MySQL中UTF-8编码的数据在CMD命令行显示乱码解决方案

解决在windows系统cmd命令行下,mysql中utf-8编码的数据乱码问题。
  • DunYLin
  • DunYLin
  • 2017年02月15日 00:07
  • 3982

Windows下修改mysql编码为utf-8

今天遇到个很头疼的问题,在向MySql数据库插入中文的时候,总是报下面的错误: java.sql.SQLException: Incorrect string value: '\xE5\xB8\x8C...

修改MySQL数据库字符编码为UTF-8解决中文乱码

由于MySQL编码原因会导致数据库出现乱码。 解决办法: 修改MySQL数据库字符编码为UTF-8,UTF-8包含全世界所有国家需要用到的字符,是国际编码。 具体操作: 1、进...

mysql设置默认编码格式utf-8

最近稍微闲了一阵子,就想去弄一下后台,于是装了mysql数据库,一开始登录mysql、创建用户、授权、创建数据库、创建表等都很顺利,在做表插入的时候发现mysql中文插入报错,于是网上搜索解决办法,发...

设置MYSQL数据库编码为UTF-8:

设置mysql数据库显示编码:set charset utf8;  查看mysql数据库编码:show variables like 'character%';    在这个过程中如果出现了数据库...
  • lidew521
  • lidew521
  • 2013年02月03日 23:05
  • 12285

Linux下Mysql编码修改为UTF-8

以CentOS6.3示例,查看当前系统环境变量: [root@cloudmaster ~]# mysql -uroot -p mysql> show variables like '%ch...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL支持UTF-8编码全攻略
举报原因:
原因补充:

(最多只允许输入30个字)