Mysql中经常出现的乱码问题
Mysql中执行SET NAMES utf8这条SQl的作用
1)首先,Mysql服务器的编码和数据库的编码在配置文件my.ini中设置;
用记事本打开配置文件,修改代码:default-character-set=utf8,这里
保证了Mysql服务器以及数据库的编码是utf8;
2)打开Mysql的命令行客户端,执行SQL:
show variables like '%character%',结果有这几个编码集
character_set_client | gbk
character_set_connection | gbk
character_set_database | utf8
character_set_filesystem | binary
character_set_results | gbk
character_set_server | utf8
character_set_system | utf8
3)现在查看某张表里面带有中文的数据时,没有乱码,也可以插入中文数据
+---------+--------------+----------
| type_id | type_name | parent_id
+---------+--------------+----------
| 1 | 编程语言 | 0
| 2 | 静态编程语言 | 1
| 3 | 动态编程语言 | 1
| 4 | JavaScript | 2
| 5 | Shell | 2
| 6 | Perl | 2
| 7 | C | 3
| 8 | C++ | 3
| 9 | Java | 3
| 10 | 呵呵呵 | 3
4)执行SQL:SET NAMES utf8,之后,在查看编码集
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8
5)这时候再来查看带有中文的数据,就出现乱码了
type_id | type_name | parent_id
---------+--------------------+-----------
1 | 缂栫▼璇?█ | 0 |
2 | 闈欐佺紪绋嬭?瑷 | 1 |
3 | 鍔ㄦ佺紪绋嬭?瑷 | 1 |
4 | JavaScrip | 2
5 | Shell | 2
6 | Perl | 2
7 | C | 3
8 | C++ | 3
9 | Java | 3
10 | 鍛靛懙鍛µ | 3
而且也不能插入中文数据;
6)存数据的过程是:client->connection->server
取数据的过程是:server->connection->result
7)所以这三者
character_set_client
character_set_results
character_set_connection
是与命令行的编码同步的,命令行的编码为GBK
8)如果在程序中出现乱码问题,可以这样处理
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;
与程序保证一致的utf8编码
最新文章
- rsa密钥文件转化为tortoise认可的pak密钥文件
- How To Use FETCH_RECORDS In Oracle Forms
- xcode C++一些简单设置
- 为php安装memcached扩展连接memcached服务器
- window+git+AndroidStudio+github
- <;转>;Python学习推荐
- extern用法总结!
- 如何禁止KEIL初始化RAM为零&; 如何判断是软复位还是上电复位
- javabean对象自动赋值给另一个javabean对象
- oralce 获取自定义主键编码,有并发问题
- java 输入、输出流
- 《分布式Java应用之基础与实践》读书笔记四
- Centos 6启动流程详解
- Python之signal模块
- 用js来实现那些数据结构07(链表01-链表的实现)
- 5. Failed to configure a DataSource: &#39;url&#39; attribute is not specified and no embedded datasource could be configured.
- SQL语句方法语法总结(一)
- 转:SQL Server - 使用 Merge 语句实现表数据之间的对比同步
- python基础之面向对象的多继承以及MRO算法
- MariaDB的线程及连接