您的位置:威尼斯官方网站 > 威尼斯官方网站登录 > 威尼斯官方网站 mysql的字符集和字符序有四个级

威尼斯官方网站 mysql的字符集和字符序有四个级

发布时间:2020-01-03 20:02编辑:威尼斯官方网站登录浏览(115)

    mysql的字符集和字符序:
        字符序:字符序(Collation卡塔尔国是指在同一字符集内字符之间的相比准则
        贰个字符序唯意气风发对应后生可畏种字符集,但三个字符集能够对应各种字符序,个中有三个是私下认可字符序(Default Collation卡塔尔国

        mysql的字符集和字符序有五个等级的暗中认可设置:服务器级,数据库级,数据表级,字段级

        mysql中的字符序的命名根据规范,以字符序对应的字符集名称最先.以_ci(大小写不灵活State of Qatar,_cs(大小写敏感State of Qatar也许_bin(按编码值相比卡塔尔(قطر‎
            比方:在字符序“utf8_general_ci”下,字符“a”和“A”是等价的

        mysql字符集设置:
            系统变量:
                – character_set_server:私下认可的中间操作字符集
                – character_set_client:顾客带给源数据应用的字符集
                – character_set_connection:连接层字符集
                – character_set_results:查询结果字符集
                – character_set_database:当前选中数据库的暗中认可字符集
                – character_set_system:系统元数据(字段名等卡塔尔国字符集
                – 还有以collation_起来的同地点对应的变量,用来描述字符序

            MySQL中的字符集调换进程:
                1.MySQL Server收受诉求时将央求数据从character_set_client转换为character_set_connection
                2.张开之中操作前将倡议数据从character_set_connection调换为个中操作字符集,其明确方法如下
                       - 使用各类数据字段的CHARACTEGL450 SET设定值
                       - 若上述值官样文章,则利用相应数据表的DEFAULT CHARACTESportageSET设定值(MySQL扩充,非SQL标准卡塔尔国
                       - 若上述值不设有,则使用相应数据库的DEFAULT CHARACTETiguanSET设定值
                       - 若上述值不设有,则运用character_set_server设定值
                3.将操作结果从里面操作字符集调换为character_set_results

            检查评定字符集难点的通令;
                    SHOW CHARACTER SET;
                    SHOW COLLATION;
                    SHOW VARIABLES LIKE ‘character%’;
                    SHOW VARIABLES LIKE ‘collation%’;
                    SQL函数HEX、LENGTH、CHAR_LENGTH
                    SQL函数CHARSET、COLLATION

            注意事项:
                1.my.cnf中的default_character_set设置只影响mysql命令连接服务器时的一而再字符集,不会对使用libmysqlclient库
                的应用程序爆发此外成效
                2.对字段进行的SQL操作常常都以以内部操作字符集来张开的,不受连接字符集设置的影响

            总结:
                mysql的字符集能够细化到八个库,一张表,一列.但是通常是应用私下认可的安装
                    1.编写翻译mysql时,钦赐了多个私下认可的字符集,这些字符集是latin1
                    2.设置mysql时,能够在陈设文件中内定一个暗中认可的字符集,若无一点名,那一个值继承编写翻译时的字符集
                    3.起动mysqld时,能够应用character_set_server来钦定暗许的字符集,若无一点名就三翻五次配置文件中的配置
                    4.安装mysql时精选多语言帮衬,在程序安装时会自动将配置安装为UTF-8

                暗中认可意况下的mysql默许字符集是latin1

            更正私下认可字符集:
                1.最简便易行的改正章程:
                    在mysql的构造文件中进入default-character-set = utf8
                                        character_set_server = utf8
                        纠正完后重启服务器
                2.在线改良字符集
                         mysql> SET character_set_client = utf8;
                         mysql> SET character_set_connection = utf8;
                         mysql> SET character_set_database = utf8;
                         mysql> SET character_set_results = utf8;
                         mysql> SET character_set_server = utf8;
                         mysql> SET collation_connection = utf8;
                         mysql> SET collation_database = utf8;
                         mysql> SET collation_server = utf8;

                设置了表的暗中认可字符集为utf8并且经过UTF-8编码发送查询,存入数据库的仍为乱码.那connection连接层上恐怕出了难点
                解决办法是在发送查询前执行一下上边那句:SET NAMES 'utf8';它约等于上面包车型大巴三句发号施令:
                    SET character_set_client = utf8;
                    SET character_set_results = utf8;
                    SET character_set_connection = utf8;

    温馨礼拜天放假没事学习的心得,如有不对请建议.多谢!

    本文由威尼斯官方网站发布于威尼斯官方网站登录,转载请注明出处:威尼斯官方网站 mysql的字符集和字符序有四个级

    关键词:

上一篇:在编写翻译的历程中

下一篇:没有了