首页 » SEO优化 » phpmysql字符集设置技巧_软件测试 MySQL字符集的设置

phpmysql字符集设置技巧_软件测试 MySQL字符集的设置

访客 2024-11-09 0

扫一扫用手机浏览

文章目录 [+]

做事器字符集和校正,在 MySQL 做事启动的时候确定。

可以在 my.cnf 中设置: [mysqld] default-character-set=gbk 或者在启动选项中指定: mysqld --default-character-set=gbk 或者在编译的时候指定: ./configure --with-charset=gbk

如果没有特殊的指定做事器字符集,默认利用 latin1 作为做事器字符集。
上面 3 种设置的办法都只指定了字符集,没有指定校正规则,这样是利用该字符集默认的校正规则,如果要利用该字符集的非默认校正规则,则须要在指定字符集的同时指定校正规则。

phpmysql字符集设置技巧_软件测试  MySQL字符集的设置

可以用“show variables like 'character_set_server';”命令查询当前做事器的字符集和校正规则。

phpmysql字符集设置技巧_软件测试  MySQL字符集的设置
(图片来自网络侵删)

mysql> show variables like 'character_set_server'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | character_set_server | gbk | +----------------------+-------+ 1 row in set (0.00 sec) mysql> show variables like 'collation_server'; +------------------+----------------+ | Variable_name | Value | +------------------+----------------+ | collation_server | gbk_chinese_ci | +------------------+----------------+ 1 row in set (0.00 sec)

数据库字符集和校正规则

数据库的字符集和校正规则在创建数据库的时候指定,也可以在创建完数据库后通过“alter database”命令进行修正。
须要把稳的是,如果数据库里已经存在数据,由于修正字符集并不能将已有的数据按照新的字符集进行存放,以是不能通过修正数据库的字符集直接修正数据的内容,在 9.7 小节中通过一个详细的例子先容了字符集的修正方法。

设置数据库字符集的规则是:

如果指定了字符集和校正规则,则利用指定的字符集和校正规则;如果指定了字符集没有指定校正规则,则利用指定字符集的默认校正规则;如果没有指定字符集和校正规则,则利用做事器字符集和校正规则作为数据库的字

符集和校正规则。

推举在创建数据库的时候明确指定字符集和校正规则,避免受到默认值的影响。
要 显 示 当 前 数 据 库 的 字 符 集 和 校 对 规 则 , 可 以 使 用 “ show variables like ' character_set_database '”和“show variables like ' collation_database '”命令查看:

mysql> show variables like 'character_set_database'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | character_set_database | utf8 | +------------------------+-------+ 1 row in set (0.00 sec) mysql> show variables like 'collation_database'; +--------------------+-----------------+ | Variable_name | Value | +--------------------+-----------------+ | collation_database | utf8_general_ci | +--------------------+-----------------+ 1 row in set (0.00 sec)

表字符集和校正规则

表的字符集和校正规则在创建表的时候指定,可以通过 alter table 命令进行修正,同样,如

果表中已有记录,修正字符集对原有的记录并没有影响,不会按照新的字符集进行存放。

的字段仍旧利用原来的字符集。

设置表的字符集的规则和上面基本类似:

如果指定了字符集和校正规则,利用指定的字符集和校正规则;如果指定了字符集没有指定校正规则,利用指定字符集的默认校正规则;如果没有指定字符集和校正规则,利用数据库字符集和校正规则作为表的字符集和校正规则。

推举在创建表的时候明确指定字符集和校正规则,避免受到默认值的影响。
要显示表的字符

集和校正规则,可以利用 show create table 命令查看:

mysql> show create table z1 \G; 1. row Table: z1 Create Table: CREATE TABLE `z1` ( `id` int(11) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_bin 1 row in set (0.00 sec)

列字符集和校正规则

MySQL 可以定义列级别的字符集和校正规则,紧张是针对相同的表不同字段须要利用不同的字符集的情形,该当说一样平常碰着这种情形的几率比较小,这只是 MySQL 供应给我们一个灵巧设置的手段。

列字符集和校正规则的定义可以在创建表时指定,或者在修正表时调度,如果在创建表的时候没有特殊指定字符集和校正规则,则默认利用表的字符集和校正规则。

连接字符集和校正规则

上面 4 种设置办法,确定的是数据保存的字符集和校正规则,对付实际的运用访问来说,还

存在客户端和做事器之间交互的字符集和校正规则的设置。

对付客户端和做事器的交互操作,MylSQL 供应了 3 个不同的参数:character_set_clientcharacter_set_connection 和 character_set_results,分别代表客户端、连接和返回结果的字符集,常日情形下,这 3 个字符集该当是相同的,才可以确保用户写入的数据可以精确地读出,特殊是对付中笔墨符,不同的写入字符集和返回结果字符集将导致写入的记录不能精确读出。
常日情形下,不会单个地设置这 3 个参数,可以通过以下命令:

SET NAMES ;

来设置连接的字符集和校正规则,这个命令可以同时修正这 3 个参数的值。
利用这个方法修正连接的字符集和校正规则,须要运用每次连接数据库后都实行这个命令。
其余一个更简便的办法,是在 my.cnf 中设置以下语句:

[mysql] default-character-set=gbk

这样做事器启动后,所有连接默认便是利用 GBK 字符集进行连接的,而不须要在程序中再实行 set names 命令。

其余,字符串常量的字符集也是由 character_set_connection 参数来指定的。

可以通过“[_charset_name]'string' [COLLATE collation_name]”命令逼迫字符串的字符集和校正规则。
例如:

select _gbk '字符集'; select _latin1 '字符集';

常日情形下,基本不须要用户逼迫指定字符串字符集。

搜索微信"大众年夜众号:TestingStudio霍格沃兹的干货都很硬核

相关文章

QQ聊天恶搞代码技术背后的趣味与风险

人们的生活越来越离不开社交软件。在我国,QQ作为一款历史悠久、用户众多的社交平台,深受广大网民喜爱。在QQ聊天的过程中,恶搞代码的...

SEO优化 2025-03-02 阅读1 评论0

Python代码截屏技术与应用的完美融合

计算机屏幕截图已经成为人们日常生活中不可或缺的一部分。无论是分享工作成果、记录游戏瞬间,还是保存网页信息,屏幕截图都发挥着重要作用...

SEO优化 2025-03-02 阅读1 评论0

QQ无限刷礼物代码技术突破还是道德沦丧

社交平台逐渐成为人们生活中不可或缺的一部分。QQ作为我国最具影响力的社交软件之一,其丰富的功能吸引了大量用户。近期有关QQ无限刷礼...

SEO优化 2025-03-02 阅读1 评论0