• 03_MySQL中文乱码处理_01_MySQl数据库字符集知识


    【MySql数据库常见字符集介绍】

      在互联网环境中,使用MySql时常用的字符集有:

    【如何选择合适的字符集】

      1.如果处理各种各样的文字,发布到不同语言的国家地区,应选Unicode字符集,对MySQL来说就是UTF-8(每个汉字3字节),如果应用需要处理英文,仅少量汉字使用UTF8更好(中英文混合)

       2.如果只需要支持中文,并且数据量很大,性能要求也较高,可选择GBK(定长:每个汉字占双字节,英文也占双字节),如果需要大量运算,如:比较排序,定长字符集,更快,性能更高。

      3.处理移动互联网业务,可能需要utf8mb4字符集。

     【查看当前MySQL系统支持的字符集】

    使用“ show character set; ”来查看:

    查看当前MySQL的字符集设置情况

    使用" show variables like 'character_set%' "

    | Variable_name                  |      Value    |

    | character_set_client             |      utf8      |----------客户端字符集

    | character_set_connection      |      utf8      |----------连接字符集

    | character_set_database        |      utf8      |----------数据库字符集,配置文件指定或建库建表指定

    | character_set_filesystem      |     binary    |----------

    | character_set_results           |       utf8     |----------返回结果字符集

    | character_set_server           |     latin1     |---------服务器字符集,配置文件指定或建库建表指定

    | character_set_system          |     utf8        |


    【使用"set names ****"解决乱码问题】

    我们先在MySQL默认创建的test数据库中建立一个"user"表

    然后我们来为user表添加一些数据:

    会发现,插入英文都正常,但是一旦插入中文会出现“ Incorrect string value:"xD5xC5xC8xFD" for column 'name' at row 1 ”的错误。

    我们先查看一下其数据库test的字符编码,默认是Latin1编码的

    再查看一下表user的字符编码:同样是latin编码

    对应于数据库和表均为latin1编码的情况,如何可以插入中文数据呢?如下:

    使用"set names latin1;"设置编码,然后插入中文字段即可。

    接下来查询一下,关闭cmd,重新打开一个cmd重新登录,进行查询操作。

    发现查询出来又是乱码,我们再处理一下,

     

    于是可以得出,要根据被查询的数据库和表的本身的字符编码来进行对应的" set names  **** "进行处理。

     再来看看"set names ****"的具体作用:

    先看下数据库test的默认情况下的字符集设置情况:

    使用“set names utf8;” 再看下结果:

     

  • 相关阅读:
    关于不重启Tomcat自动加载改变的class文件
    Oracle数据库查询优化方案
    NavBarControl
    Spring Boot 热部署
    JSR303定义的校验类型
    C# JSON的序列化与反序列化
    常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
    什么是窗口句柄
    luffy前台配置
    luffy后台相关设置
  • 原文地址:https://www.cnblogs.com/HigginCui/p/5787380.html
Copyright © 2020-2023  润新知