用命令行设置mysql字符集(转载)
来源:互联网 发布:sql保留2位小数的函数 编辑:程序博客网 时间:2024/05/21 19:37
查看系统的字符集和排序方式的设定可以通过下面的两条命令:
mysql> SHOW VARIABLES LIKE 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
7 rows in set (0.00 sec)mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
上面列出的值就是系统的默认值。
一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
而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
- 用命令行设置mysql字符集(转载)
- 用命令更改mysql字符集配置
- ubuntu用命令行设置网络
- 用命令行参数备份mysql数据
- 用命令行恢复MySQL数据库
- 用命令行导入导出mysql数据库
- 用命令行启动、停止mysql服务
- 用命令行恢复MySQL数据库
- 用命令行查看mysql端口
- mysql 用命令行导出数据库文件
- 用命令行连接MySQL数据库
- 巧用命令行
- MySQL用命令行登陆MySQL command line client
- 用命令创建MySQL数据库
- 用命令创建MySQL数据库
- 用命令创建MySQL数据库
- 用命令创建MySQL数据库
- 用命令行方式进行WIndows的网络设置
- linux下如何列出子目录
- VS2005的程序文件分发问题及解决
- Callback函数详解
- 解读Linux文件权限的设置方法
- Sqlserver函数小集
- 用命令行设置mysql字符集(转载)
- 如何让自己原本建立在webservice上的程序脱离webservice而又一点都不改动代原码跑起来?
- 学习新事物:神奇的读心术
- vi命令大全
- HTML::LinkExtor
- 泛型集合类型,赋予集合业务意义,增强集合的抽象使用
- JSF学习笔记四-Managed Beans
- BIOS详解..
- 什么是Linq to sql