美文网首页
Mysql编码问题

Mysql编码问题

作者: SingleException | 来源:发表于2020-03-12 20:56 被阅读0次

编码和比较规则

  • character_set_client 服务器解码请求时使用的字符集

  • character_set_connection 服务器处理请求时会把请求字符串从character_set_client转为character_set_connection

  • character_set_results 服务器向客户端返回数据时使用的字符集

一般情况下要使用保持这三个变量的值和客户端使用的字符集相同。

设置字符集一致,方法一:

SET character_set_client = 字符集名; 

SET character_set_connection = 字符集名;

SET character_set_results = 字符集名; 

方法二:

SET NAMES 字符集名;

另外,如果你想在启动客户端的时候就把character_set_clientcharacter_set_connectioncharacter_set_results这三个系统变量的值设置成一样的,那我们可以在启动客户端的时候指定一个叫default-character-set的启动选项,比如在配置文件里可以这么写:

[client]
default-character-set=utf8

编码过程

image.png
  • 客户端使用操作系统的字符集编码请求字符串,向服务器发送的是经过编码的一个字节串。

  • 服务器将客户端发送来的字节串采用character_set_client代表的字符集进行解码,将解码后的字符串再按照character_set_connection代表的字符集进行编码。

  • 如果character_set_connection代表的字符集和具体操作的列使用的字符集一致,则直接进行相应操作,否则的话需要将请求中的字符串从character_set_connection代表的字符集转换为具体操作的列使用的字符集之后再进行操作。

  • 将从某个列获取到的字节串从该列使用的字符集转换为character_set_results代表的字符集后发送到客户端。

  • 客户端使用操作系统的字符集解析收到的结果集字节串。

相关文章

  • 【MySQL实战02】CentOS 7 下修改 MySQL 字符

    乱码问题: 由于 MySQL 编码原因会导致数据库出现乱码的问题。 解决办法: 修改 MySQL 数据库的字符编码...

  • Mysql编码问题

    操作系统:Ubuntu 14.04 Mysql版本:5.5.46 由于需要在Mysql中插入中文,因此就需要将My...

  • Mysql编码问题

    Linux 安装Mysql 首先明确大体步骤为3步 1.下载数据库的压缩包或二进制包,可以在linux用wget或...

  • Mysql编码问题

    编码和比较规则 character_set_client 服务器解码请求时使用的字符集 character_set...

  • 解决MySQL中文乱码-Linux

    简单有效解决MySQL中文乱码的问题 1 查看MySQL的编码 使用 mysql -u root -p 登入mys...

  • mysql设置编码问题

    创建完数据库最后执行一遍下面所有的语句,数据库创建的时候最好指定utf-8,不然会出现想象不到的乱码问题

  • MySQL的编码问题

    在尝试着将csv的数据导入mysql的时候,遇到了一个很麻烦的问题就是中文字符的编码问题。我是用Navicat导入...

  • MySQL中文编码问题

    建库:create database db character set utf8;建表:create table ...

  • MySQL字符编码问题

    出现乱码主要是因为有中文的问题。这里主要分两步来说明。 首先需要把所有的字符编码统一为UTF8。使用命令来查询当前...

  • 简单明白彻底解决 MySQL 中文编码问题

    简单明白彻底解决 MySQL 中文编码问题 1. 问题重现 2. 分析和解决 2.1 数据库编码设置 2.1.1 ...

网友评论

      本文标题:Mysql编码问题

      本文链接:https://www.haomeiwen.com/subject/onowjhtx.html