谈谈MySQL乱码和set names
来源:互联网 发布:刀路模拟软件 编辑:程序博客网 时间:2024/05/21 06:35
SET NAMES utf8
相当于
SET character_set_client = utf8 用来设置客户端送给MySQL服务器的数据的 字符集
SET character_set_results = utf8 服务器返回查询结果时使用的字符集
SET character_set_connection = utf8 MySQL 服务器把客户端传来的数据,从character_set_client字符集转换成character_set_connection字符集
比如我们可以设置
SET character_set_client = gbk
SET character_set_results = gbk
而
SET character_set_connection = utf8
如果CREATE TABLE中没有明确指出字符集和collation,那么全局的 database字符集和collation将做为该表的字符集和collation值。现在很多虚拟主机管理员将其设置为utf8。默认的database的字符集和collation可以通过系统变量character_set_database和collation_database查看。服务器当默认database改变时设置这些变量的值。如果没有默认的database,这些变量的将与对应的服务器级的系统变量character_set_server和collation_server的值相同。
mysql> show variables like '%char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | gbk |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | gbk |
| character_set_system | utf8 |
| /usr/local/mysql/share/mysql/charsets/ |
+--------------------------+----------------------------------------+
在查询结果中可以看到mysql 数据库系统中客户端、数据库连接、数据库、文件系统、查询结果、服务器、系统的字符集设置在这里,文件系统字符集是固定的,系统、服务器的字符集在安装时确定,与乱码问题无关。乱码的问题与客户端、数据库连接、数据库、查询结果的字符集设置有关。
再用show variables like '%char%';命令查看字符集设置情况,可以发现客户端、数据库连接、
查询结果的字符集已经设置成登录时选择的字符集了
如果是已经登录了,可以使用set names 字符集;命令来实现上述效果,等同于下面的命令:
set character_set_client = 字符集
set character_set_connection = 字符集
set character_set_results = 字符集
如果是通过JDBC 连接数据库,可以这样写URL:
URL=jdbc:mysql://localhost:3306/abs?useUnicode=true&characterEncoding=字符集
- 谈谈MySQL乱码和set names
- 谈谈MySQL乱码和set names
- 谈谈MySQL乱码和set names
- 谈谈MySQL乱码和set names
- MYSQl乱码可以用:mysql_query("set names 'gbk'");
- PHP MYSQL乱码问题,使用SET NAMES utf8校正
- mysql set names utf8解决乱码的方法(转)
- mysql 使用set names 解决乱码问题的原理
- mysql 使用set names 解决乱码问题的原理
- mysql 使用set names 解决乱码问题的原理
- MySql中SET NAMES utf8详解(乱码原理)
- mysql 插入出现乱码-解决办法 set names utf8
- mysql 使用set names 解决乱码问题的原理
- mysql 使用set names 解决乱码问题的原理
- mysql 使用set names 解决乱码问题的原理
- MySQL 使用set names 解决乱码问题的原理
- mysql set names 问题
- mysql set names
- 注解java并发执行的一个例子(选自thinking in java)
- ubuntu server 12.04 修改为英文环境
- request.getParameterValues与request.getParameter的区别
- TabHost和android:layout_height="0.0dip"以及android:layout_weight配合在布局中的使用
- python无法输入中文注释的解决办法
- 谈谈MySQL乱码和set names
- 堆排序
- SQLite数据库报-1错误
- #define GPBCON (*(volatile unsigned *)0x56000010) 的理解
- 大表更新方法--使用rowid
- poj2769之寻找最小完全剩余系
- c# excel 新建工作薄
- java中的synchronized理解
- jsp实现验证码实例