mysql 字符集设置

article/2025/11/9 11:30:47

一、 MySQL字符集设置

(1)       系统变量:
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集
– 还有以collation_开头的同上面对应的变量,用来描述字符序。

(2)       用introducer指定文本字符串的字符集:
– 格式为:[_charset]’string’ [COLLATE collation]
– 例如:
       SELECT _latin1 ’string’;
       SELECT _utf8 ‘你好’ COLLATE utf8_general_ci;
– 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。

二、 MySQL中的字符集转换过程

(1)       MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;

(2)       进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:
       - 使用每个数据字段的CHARACTER SET设定值;
       - 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);
       - 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;
       - 若上述值不存在,则使用character_set_server设定值。
 

三、MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.
    (1)      编译MySQL时,指定了一个默认的字符集,这个字符集是 latin1
    (2)      安装MySQL时,可以在配置文件 (my.ini)中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
    (3)      启动mysqld时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
    (4)      安装MySQL选择多语言支持,安装程序会自动在配置文件中把default_character_set设置为 UTF-8,保证缺省情况下所有的数据库所有表的所有列的都用 UTF-8存储。

四、修改默认字符集
(1)        最简单的修改方法,就是修改mysql的my.cnf(这里注意:windows 是my.ini)文件中的字符集键值,


     修改完后,重启mysql的服务
(2)        还有一种修改字符集的方法,就是使用mysql的命令

    设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,存入数据库的仍然是乱码。那connection连接层上可能出了问题。解决方法是在发送查询前执行一下下面这句: SET NAMES 'utf8';它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

 

五、使用MySQL字符集时的建议
    

(1)          建立数据库/表和进行数据库操作时尽量显式指出使用的字符集,而不是依赖于MySQL的默认设置,否则MySQL升级时可能带来很大困扰;
   数据库和连接字符集都使用latin1时,虽然大部分情况下都可以解决乱码问题,但缺点是无法以字符为单位来进行SQL操作,一般情况下将数据库和连接字符集都置为utf8是较好的选择;

(2)          使用mysql CAPImysql提供C语言操作的API)时,初始化数据库句柄后马上用mysql_options设定MYSQL_SET_CHARSET_NAME属性为utf8,这样就不用显式地用SET NAMES语句指定连接字符集,且用mysql_ping重连断开的长连接时也会把连接字符集重置为utf8

(3)          对于mysql PHP API,一般页面级的PHP程序总运行时间较短,在连接到数据库以后显式用SET NAMES语句设置一次连接字符集即可;但当使用长连接时,请注意保持连接通畅并在断开重连后用SET NAMES语句显式重置连接字符集。
         

六、其他注意事项
                 my.cnf中的default_character_set设置只影响mysql命令连接服务器时的连接字符集,不会对使用libmysqlclient库的应用程序产生任何作用!
    对字段进行的SQL函数操作通常都是以内部操作字符集进行的,不受连接字符集设置的影响。


http://chatgpt.dhexx.cn/article/VsAMsccy.shtml

相关文章

mysql 所有字符集_mysql字符集

mysql字符集 字符集基础 字符集:数据库中的字符集包含两层含义 各种文字和符号的集合,包括各国家文字,标点符号,图形符号,数字等。 字符的编码方式,即二进制数据与字符的映射规则; 字符集分类: ASCII:美国信息互换标准编码;英语和其他西欧语言;单字节编码,7位(bits…

MySQL字符集设置为UTF-8,但控制台仍然出现中文乱码问题

问题描述:MySQL字符集为UTF-8,控制台显示结果的中文字符仍然会出现乱码,如何解决? 详细描述:安装MySQL的时候选择了UTF8的字符集,为了方便数据库维护,所有字符集也都设置了UTF8的字符集&#xf…

mysql服务器默认操作字符集,MySQL 字符集设置

数据库建库时默认是设置的latin1编码,查看系统的字符集和排序方式 show variables like character%; SHOW VARIABLES LIKE collation_%; SET NAMES gb2312; show variables like character%; SET NAMES x 相当于 SET character_set_client = x; SET character_set_results = x…

mysql数据库的字符集设置_mysql数据库的字符集设置

原文链接:http://blog.csdn.net/sin90lzc/article/details/7648439 作者:开浪裤 Notice:文章基于ubuntu系统而写 1.关于MySQL字符集 MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation)。 MyS…

mysql中设置字符集语句_MYSQL字符集设置的方法详解(终端的字符集)

前言 每次利用终端 创建数据库或者创建表的时候,字符集都是latin1,或者进行插入值的时候,显示的是乱码(不指定字符集的时候)如下: 查看当前数据库的字符集 character_set_client:客户端请求数据的字符集 character_set_connection:客户机/服务器连接的字符集 character_s…

配置MySQL字符集教程

引 ​ MySQL 默认的字符集叫做拉丁文, 是不支持中文的. 为了能够存储中文, 就需要把字符集 改成 UTF-8 修改 MySQL 字符集的办法有很多种, 而修改 MySQL 的配置文件则是一个 一劳永逸 的办法~ 1. 先确认当前数据库的字符集 首先使用 SQL 语句 show variables like character%; …

MySQL的字符集设置

在安装完mysql后,最好先设置一下字符集。因为如果不设置的话,mysql5.7新创建的数据库使用的是latin字符集,这会导致数据库表不能插入中文。mysql8.0默认已经使用utf-8 对于新手来说,如果你已经创建了数据库,那么可以直…

MySQL的字符集设定

我们有时在查看数据库数据时,看到一写乱码,这是由于mysql数据库字符集设定的问题,下面我就来谈谈如何正确设定字符集 在mysql中可以设定的字符集有:①服务器默认字符集 ②数据库字符集 ③表的字符集 ④列的字符集。 如果一个级别…

MySQL字符集设置

一、 MySQL字符集设置 (1) 系统变量: – character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层字符集 – characte…

【Win10桌面美化】一个精致的程序员桌面是怎样的呢(花了一上午时间两种风格!)

或许大家都喜欢苹果的风格,但奈何一般买的电脑都是Win10系统,今天整理了一上午,终于打造了一个自己觉得挺不错的两种风格桌面,至少不是很差的那种。一起来看看吧~ 风格一 风格二 如果你也想拥有这样的桌面的话,评论区…

程序员的办公桌上,都出现过哪些神奇的玩意儿 ~

梦想橡皮擦,一个逗趣的互联网高级网虫。 2020 年,橡皮擦又认识了很多程序员,他们除了技术神一般的存在,办公桌上也总是出现迷一般的物品。 今天我们不聊技术,看一看我们程序员的办公桌上,都见到过哪些神奇…

程序员的桌面是什么样的?美工:那...不是我的桌面吗?

近日,有网友提问道:作为一个程序员,一直使用的都是默认Windows10桌面,最近被妹子吐槽太丑,打算换一个,不知道各位程序员的桌面都长什么样子? 于是小编整理了一些程序员桌面的内容分享给大家,把电脑桌面设置成一些自己喜欢的事物,不仅可以自己过足眼瘾,还能吸引过路的…

程序员桌面都这么秀?网友:用砖头当杯垫这样合适吗?留着吓谁

当一个程序员刚入职的时候,办公桌上基本也就一电脑、一键盘、一鼠标,最多再配个杯子。然而混迹职场多年的猿老们,办公桌上都有一些彰显自己斗宗实力的“法器”。 ​ 为什么有些程序员喜欢放一些小物品在桌上?比如这只小黄鸭&…

晒一晒程序员桌面,你惊呆了没?

点击上方“芋道源码”,选择“设为星标” 管她前浪,还是后浪? 能浪的浪,才是好浪! 每天 8:55 更新文章,每天掉亿点点头发... 源码精品专栏 原创 | Java 2020 超神之路,很肝~中文详细注释的开源项…

程序员的桌面!

因为灵感随时可以从混乱的桌面获得,并且看似混乱的背后,其实自有一套混乱制造者的逻辑,并不影响他们执行工作的效率。 爱因斯坦、马克吐温、扎克伯格不幸躺枪…… 爱因斯坦 马克吐温 马克扎克伯格,脸书创始人兼CEO 然而到了互联网…

这位程序员的桌面是我见过最漂亮的了

点击上方“芋道源码”,选择“设为星标” 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2019 超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数…

程序员装B小技巧——管理你的桌面

程序员装B小技巧——管理你的桌面 引言 想不想拥有一个和下方截图一样简单快捷的桌面?随着工作学习的时间推移,我们电脑里面的各种软件和文档日渐增多,导致我们的桌面变得杂乱且不美观。身为一个程序员怎么能容忍自己的桌面如此&#xff0c…

Hey~程序员,你的桌面风格该换了

最近,要做的项目越来越多,桌面上几乎全都是这样那样的文件,整个桌面看起来非常的乱。对于程序员来说,凌乱的桌面会影响我门做项目的速度,程序员就是要快才行,不快怎么能高效率呢? 正式介绍前&a…

程序员桌面

转载程序员桌面! 1、三思后再写代码!!! 2、从世界上搜索喜欢你的人!!! 其他分辨率下载: 1920x10801920x12002560x14402560x1600 3、代码没写完,哪里有脸睡觉&#xff…

晒一波程序员的桌面,逼格超级高

之前不小心秀了下桌面 没想到大家都这么热情的回复了 讲真,看完我觉得太亲切了! 因为看到了同款桌面、同款键盘 还有同款游戏手柄.... 小姐姐是在用sublime写lua开发unity游戏吗? Bug写到一半烦躁的时候就需要降降温 这么暖心的大白作为桌面&…