zoukankan      html  css  js  c++  java
  • 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编码

  • 相关阅读:
    python logging模块
    python re模块
    python xml模块
    python json,pickle,shelve模块
    python os,sys模块
    python 临时添加环境变量
    python random模块
    python time模块
    python 装饰器的简单使用
    python学习之路(二)
  • 原文地址:https://www.cnblogs.com/lianliang/p/5168442.html
Copyright © 2011-2022 走看看