问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MySQL中utf8_unicode_ci是什么意思?

发布网友 发布时间:2022-04-09 11:49

我来回答

3个回答

懂视网 时间:2022-04-09 16:10

代码如下:
     当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。

 

     utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘?‘等于‘ss‘。

     utf8_general_ci是一个遗留的 校对规则,不支持扩展。它仅能够在字符之间进行逐个比较。这意味着utf8_general_ci校对规则进行的比较速度很快,但是与使用utf8_unicode_ci的 校对规则相比,比较正确性较差)。

     例如,使用utf8_general_ci和utf8_unicode_ci两种 校对规则下面的比较相等:
     ? = A
     ? = O
     ü = U

     两种校对规则之间的区别是,对于utf8_general_ci下面的等式成立:
     ? = s

     但是,对于utf8_unicode_ci下面等式成立:
     ? = ss

     对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集 校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。

     utf8_general_ci也适用与德语和法语,除了‘?‘等于‘s‘,而不是‘ss‘之外。如果你的应用能够接受这些,那么应该使用utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。


如果你想使用gb2312编码,那么建议你使用latin1作为数据表的默认字符集,这样就能直接用中文在命令行工具中插入数据,并且可以直接显示出来.而不要使用gb2312或者gbk等字符集,如果担心查询排序等问题,可以使用binary属性约束,例如:
复制代码代码如下: create table my_table ( name varchar(20) binary not null default ‘‘)type=myisam default charset latin1;

 

二、简短总结
utf8_unicode_ci和utf8_general_ci对中、英文来说没有实质的差别。
utf8_general_ci校对速度快,但准确度稍差。
utf8_unicode_ci准确度高,但校对速度稍慢。

如果你的应用有德语、法语或者俄语,请一定使用utf8_unicode_ci。一般用utf8_general_ci就够了,到现在也没发现问题。。。

三、详细总结

1、对于一种语言仅当使用utf8_unicode_ci排序做的不好时,才执行与具体语言相关的utf8字符集校对规则。例如,对于德语和法语,utf8_unicode_ci工作的很好,因此不再需要为这两种语言创建特殊的utf8校对规则。
2、utf8_general_ci也适用与德语和法语,除了‘?‘等于‘s‘,而不是‘ss‘之外。如果你的应用能够接受这些,那么应该使用 utf8_general_ci,因为它速度快。否则,使用utf8_unicode_ci,因为它比较准确。

用一句话概况上面这段话:utf8_unicode_ci比较准确,utf8_general_ci速度比较快。通常情况下 utf8_general_ci的准确性就够我们用的了,在我看过很多程序源码后,发现它们大多数也用的是utf8_general_ci,所以新建数据 库时一般选用utf8_general_ci就可以了

四、如何在MySQL5.0中使用UTF8
在 my.cnf中增加下列参数

复制代码代码如下:
[mysqld]
init_connect=‘SET NAMES utf8′
default-character-set=utf8
default-collation = utf8_general_ci

 

执行查询 mysql> show variables; 相关如下: 

复制代码代码如下: character_set_client | utf8 
character_set_connection | utf8 
character_set_database | utf8 
character_set_results | utf8 
character_set_server | utf8 
character_set_system | utf8

 

collation_connection | utf8_general_ci 
collation_database | utf8_general_ci 
collation_server | utf8_general_ci

 

个人见解,对于数据库的使用,utf8 - general 已经足够的准确,并且相较与  utf8 - unicode速度上有优势,固可放心采用之


附1:旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集。原来的表: old_table (default charset=latin1),新表:new_table(default charset=utf8)。
第一步:导出旧数据

复制代码代码如下: mysqldump --default-character-set=latin1 -hlocalhost -uroot -B my_db --tables old_table > old.sql
第二步:转换编码(类似unix/linux环境下)
复制代码代码如下: iconv -t utf-8 -f gb2312 -c old.sql > new.sql
或者可以去掉 -f 参数,让iconv自动判断原来的字符集
复制代码代码如下: iconv -t utf-8 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
第三步:导入
修改old.sql,在插入/更新语句开始之前,增加一条sql语句: "SET NAMES utf8;",保存。
复制代码代码如下: mysql -hlocalhost -uroot my_db < new.sql
大功告成!!

 

附2:支持查看utf8字符集的MySQL客户端有
1.) MySQL-Front,据说这个项目已经被MySQL AB勒令停止了,不知为何,如果国内还有不少破解版可以下载(不代表我推荐使用破解版 :-P)。
2.) Navicat,另一款非常不错的MySQL客户端,汉化版刚出来,还邀请我试用过,总的来说还是不错的,不过也需要付费。
3.) PhpMyAdmin,开源的php项目,非常好。
4.) Linux下的终端工具(Linux terminal),把终端的字符集设置为utf8,连接到MySQL之后,执行 SET NAMES UTF8; 也能读写utf8数据了。

【转】Mysql中的排序规则utf8_unicode_ci、utf8_general_ci的区别总结

标签:

热心网友 时间:2022-04-09 13:18

当前,utf8_unicode_ci校对规则仅部分支持Unicode校对规则算法。一些字符还是不能支持。并且,不能完全支持组合的记号。这主要影响越南和俄罗斯的一些少数民族语言,如:Udmurt 、Tatar、Bashkir和Mari。
utf8_unicode_ci的最主要的特色是支持扩展,即当把一个字母看作与其它字母组合相等时。例如,在德语和一些其它语言中‘ß’等于‘ss’

热心网友 时间:2022-04-09 14:36

和编码相关的吧
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有类似xxxholic和恐怖宠物店的漫画吗 沂水滑雪场怎么走 沂水天然地下画廊景区交通指南 m果实能力 脑血管造影适应症 重仓大盘蓝筹股的基金,或加指数基金? 文言文 理穷言他 有托其妻子于其友而之楚游者的有是什么意思 有托其妻子于其友而之楚... 猫吃了毒老鼠,吐白沫,惊叫,走不稳 内存对手机性能有多重要 黄金定投好不好 黄金定投好还是基金定投好 啼啭的近义词是什么哈? 鸣叫,掀开,格外,立即,茂盛,索性,居然,挨近的近义词是什么? 啼的近义词是什么呢 女孩,赵姓,羊年七月出生,最后一个琪字,大家帮忙起个名字,谢 理由的近义词是什么反抗的近义词是什么啼叫的近义词是什么细声细语呢? 女孩,爸爸姓张,想起一个琪字结尾的名字 老师志愿者 80字英语作文 曾姓带琪字结尾的女孩名字 请问通过汉办出去当志愿者汉语老师的话,签证费和机票费用是自己付吗? 女孩名字大全2014老公姓肖琪字最后 大连理工通报志愿者支教辱骂学生,支教老师有什么样的责任和义务? 性周 起个带琪字结尾的女孩名字 给点建议 老师叫家长当志愿者,然后老师对家长说辛苦了,应该怎么回? 汉语教师志愿者的志愿者故事 琪字结尾的女孩名字 北京宠物市场在哪里 当老师大运会志愿者有帮助吗 北京犬乐汇宠物用品有限公司怎么样? 现在适合做黄金定投理财吗? 黄金定投风险高吗? 黄金定投的适合人群 黄酱炒鸡蛋怎么做 怎么样炒酱好吃 炒大酱的做法,炒大酱怎么做好吃,炒大酱的家常 送给老公手机壳上面的字 大家帮我想一个员工论坛的名字,采纳赠送200分? 急求!Discuz!X2论坛如何更换IP 公司要在局域网中做一个员工论坛,我从网上下载了Comse 我想买个情侣手机壳,上面写什么字比较好,请各位多多指教 比亚迪员工论坛或生活社区的网址是什么啊?求教! 情侣手机壳定制刻什么字 华润万家员工论坛 谁能给个华润万家员工论坛的邀请码啊? 如何申请华润万家员工论坛账号求大神帮助 比亚迪员工论坛的网址是多少? 关于网讯吉林分行员工论坛的网址,请帮个忙吧。 方大特钢员工列表(全公司) 个人养老保险交哪个档次比较划算 同程艺龙付全款预约了抢高铁票,都20天了还显示出票中,那怎么取消呢?