首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >utf8_general_ci和utf8_unicode_ci有什么不同?

utf8_general_ci和utf8_unicode_ci有什么不同?
EN

Stack Overflow用户
提问于 2009-06-23 20:49:32
回答 2查看 73.6K关注 0票数 91

可能重复:

What's the difference between utf8_general_ci and utf8_unicode_ci

我有两个unicode选项,它们看起来很适合mysql数据库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
utf8_general_ci unicode (multilingual), case-insensitive
utf8_unicode_ci unicode (multilingual), case-insensitive

你能解释一下utf8_general_ci和utf8_unicode_ci之间的区别吗?在设计数据库时,选择其中一个会有什么影响?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-06-23 20:53:24

utf8_general_ci是一种非常简单的-在Unicode上,非常破旧的-排序规则,它在一般Unicode文本上给出不正确的结果。它的作用是:

对于规范的decomposition

  • removes,
  • 将任何组合字符转换为Unicode标准化形式D
  • 将转换为大写

这在Unicode上不能正常工作,因为它不理解Unicode大小写。Unicode大小写本身要比面向ASCII的方法复杂得多。例如:

  • “ẞ”的小写是“?”,但“?”的大写是“SS”。
  • 有两个小写的希腊语sigma,但只有一个是大写的;考虑像“ø”这样的“Σίσυφος”.
  • Letters,不要分解为“o”加上变音符号,这意味着它不能正确排序。

还有许多其他的微妙之处。

  1. utf8_unicode_ci使用标准的,支持所谓的扩展和连字,例如:德文字母§(U+00DF字母SHARP S)在"ss“字母附近排序,U+0152拉丁文大写连字Œ在"OE”附近排序。

utf8_general_ci不支持扩展/连字,它将所有这些字母作为单个字符进行排序,有时还会以错误的顺序排序。

对于所有脚本,

  1. utf8_unicode_ci通常更准确。例如,在西里尔语块上:utf8_unicode_ci适用于所有这些语言:俄语、保加利亚语、白俄罗斯语、马其顿语、塞尔维亚语和乌克兰语。而utf8_general_ci只适用于俄罗斯和保加利亚的西里尔语子集。在白俄罗斯语、马其顿语、塞尔维亚语和乌克兰语中使用的额外字母排序不佳。

utf8_unicode_ci的代价是它比utf8_general_ci慢一点。但这是你为正确性付出的代价。你可以有一个错误的快速答案,也可以有一个非常慢的正确答案。你自己选吧。很难证明给出错误的答案是合理的,所以最好假设utf8_general_ci不存在,并始终使用utf8_unicode_ci。除非你想要错误的答案。

来源:http://forums.mysql.com/read.php?103,187048,188748#msg-188748

票数 140
EN

Stack Overflow用户

发布于 2009-06-23 20:55:52

MySQL documentation中的Unicode Character Sets

对于任何Unicode字符集,使用_general_ci排序规则执行的操作都比使用_unicode_ci排序规则执行的操作快。例如,与utf8_unicode_ci比较相比,utf8_general_ci排序规则的比较速度更快,但准确性略低。这样做的原因是utf8_unicode_ci支持诸如扩展之类的映射;也就是说,当一个字符与其他字符的组合进行比较时。例如,在德语和其他一些语言中,“ß”等于“ss”。utf8_unicode_ci还支持缩写和可忽略字符。utf8_general_ci是不支持扩展、收缩或可忽略字符的旧排序规则。它只能在字符之间进行一对一的比较。

票数 20
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1036454

复制
相关文章
Vue 和 React 有什么不同?
其实我对这两大框架也没有认真钻研过它们的细节,也就是工作上用它们写一些简单业务,或偶尔看看相关的博客文章,但还是有一些浅显的认识的,写下来记录一下。
前端西瓜哥
2022/12/21
1.8K0
Vue 和 React 有什么不同?
dotnet 方法名 To 和 As 有什么不同
在看到 dotnet 框架里面有很多方法里面用了 ToXx 和 AsXx 好像都是从某个类转换为另一个类,那么这两个方法命名有什么不同
林德熙
2022/08/07
1.4K0
Webpack和JShaman相比有什么不同?
JShaman专门用于对JS代码混淆加密,目的是让JavaScript代码变的不可读、混淆功能逻辑、加密代码中的隐秘数据或字符,是用于代码保护的。
用户8703799
2023/10/13
3570
UglifyJS 和JShaman相比有什么不同?
因此,两者是完全不同的。只是因为UglifyJS也具备些许混淆能力,常常使人们误以为它也是混淆加密工具。
用户8703799
2023/08/16
2020
js中==和===有什么不同之处
javaScript具有严格和类型转换相等比较。 对于严格相等比较符,要求比较的对象必须具有相同的类型,并且:
IT工作者
2022/01/25
2K0
“kill -9” 和 “kill -15” 有什么不同
可以用 kill -l 来查看具体有哪些信号编码,这里重点关注 9) SIGKILL 和 15) SIGTERM。
happyJared
2019/06/11
3.2K0
“kill -9” 和 “kill -15” 有什么不同
语句和表达式有什么不同
对于这个问题,我似乎知道答案,但当我尝试向别人解释时,我却语塞了。对于这个问题我有一种感觉,但无法清晰的表达出来。
chuckQu
2022/08/19
1.6K0
什么是敏捷BI?和传统BI有什么不同?
近些年来,随着数字化的快速发展,敏捷BI这个词也越来越流行。敏捷BI其实并不是什么新技术,相较于传统BI来说,是具有敏捷分析功能的新型BI。经过数十年的发展,商业智能BI从最初的简单的数据统计和报表功能,发展到现在拥有丰富的可视化,自动分析甚至智能洞察的功能。
数据前沿
2020/09/14
3K0
什么是敏捷BI?和传统BI有什么不同?
Salesforce生态和SAP生态有什么不同
1、一般软硬件系统集成解决方案商,会进行企业应用软件销售出货。在现在,服务器换成了云服务器、存储换成了云存储、数据库换成了云数据库,系统集成解决方案厂商换成了云集成解决方案厂商,换汤不换药。
PHP开发工程师
2021/05/19
2K0
Java和Golang有什么不同之处?
总体来说,Golang 更适合开发高并发和高性能的系统,而 Java 更适合开发大型企业级应用。
Regan Yue
2023/04/01
2.1K0
mysql: Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for opera
昨天把mysql里所有table的varchar字段的字符集,批量换成了utf8mb4/utf8mb4_unicode_ci ,以便能保存一些emoji火星文 , 结果有一个sql语句执行时,报错如下: Illegalmixofcollations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT)foroperation '= 观察了一下,这个sql使用了一个自定义的function,这个函数的入口参数为varchar,类似如下: CREAT
菩提树下的杨过
2018/01/18
1.2K0
Mysql Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operat
resolve:将比较等式的一边进行字符串转换,如:“CONVERT(a.field_a USING utf8) COLLATE utf8_unicode_ci”
WindWant
2020/09/11
1.2K0
AJAX应用和传统Web应用有什么不同
在传统的Js中,如果想发送客户端信息到服务器,需要建立一个HTML 表单然后GET或者POST数据到服务器端用户需要点击提交按钮来发送数据信息,然后等待服务器响应请求,页面重新加载使用AJAX技术,就可以使Javascript通过XMLHttpRequest对象直接与服务器进行交互
红目香薰
2022/11/29
1.2K0
TS篇(002)-TypeScript和JavaScript有什么不同?
TypeScript与JavaScript的区别如下: 参考答案: 编号JavaScriptTypeScript1它是由网景公司在1995年开发的。它是2012年由安德斯·海尔斯伯格(Anders Hejlsberg)开发的。2JavaScript源文件是”.js”扩展名。TypeScript源文件是”.ts”扩展名。3JavaScript不支持ES6。TypeScript 支持ES6。4它不支持强类型或静态类型。它支持强类型或静态类型特性。5它只是一种脚本语言。它支持面向对象的编程概念,如类、接口、继承、
齐丶先丶森
2022/05/12
1.4K0
C#种Dispose和Close有什么不同
在 .NET 中有一个很有意思的现象,有些类中同时存在 Close 和 Dispose 两种释放资源的方法,那么它们哪一个更适合做资源清理呢?下面我就来解答一下。 以 SreamReader 为例,我们用 Reflector 来查看该类中的 Close 方法,会发现它其实就是调用 Dispose 方法,并传入参数值 true ,因此如果我们不使用 Using 语句清理资源的话(Using 语句块使用 Dispose 方法清理资源),手动调用 Close 方法的效果基本上和 Dispose 方法是一样的。这里有一点要提一下,使用 using 语句来调用 Dispose 方法,那么资源一定能被释放,如果希望在资源用完后马上释放的话,就必须手动调用 Close 方法。在这里 using 和 close 方法可以同时存在,但 close 必须在 using 语句快结束前调用。 那么, Close 和 Dispose 两个方法都一样,为什么两个都要存在呢?其实我们去看 Dispose 方法和 Close 方法的源码会发现, Dispose 比 Close 多了行 GC.SuppressFinalize(this) 代码,这行代码的意思是通知 GC 当发现 SreamReader 无引用根时不要将它放入队列中,这样就避免了终结器线程再次对它处理,这也减轻了终结器线程的负担。
喵叔
2022/01/11
1.6K0
【说站】python return和yield有什么不同
python return和yield有什么不同 不同点 1、return函数中只存在一个return结束函数。 并且给函数的执行者返回值。 2、只要在函数中有yield,那么它就是生成器函数而不是函数。 3、生成器函数中可以存在多个yield,yield不会结束生成器函数。 一个yield对应一个next。 实例 def eat():     for i in range(1,10):         yield '包子'+str(i)   e = eat() for i in range(5):  
很酷的站长
2022/11/24
1.1K0
【说站】python return和yield有什么不同
【译】.NET Core和.NET Standard有什么不同
近日,微软发布了.NET Core 2.0,但是开发人员中间仍然存在一些疑惑,就是.NET Core、.NET Standard、Xamarin和.NET Framework有什么不同。 .NET Framework用于构建桌面应用程序和运行在互联网信息服务器(IIS)上的ASP.NET应用程序。它是第一个托管框架。 Xamarin是一个用于构建iOS、Android、macOS和桌面应用程序的框架。 .NET Core .NET Core是免费、跨平台的,是托管框架的开源实现。它支持4种类型的应用程序:控
陈仁松
2018/03/20
2.3K0
useLayoutEffect和useEffect执行时机有什么不同
注意加粗的字段,React 官方的文档其实把两个 hook 的执行时机说的很清楚,下面我们深入到 react 的执行流程中来理解下
beifeng1996
2022/12/07
1.5K0
什么是PKS,到底和DCS有什么不同?| 问答赠书
从5月12日到9月15日,剑指工控联合靳涛老师开设了《PKS快速入门》的课程,反响强烈。近期,我们又开设了《PKS工程案例》的课程。众多PKS从业者受益匪浅,但也引起很多对PKS不熟悉的朋友们的更多疑问。
剑指工控
2021/11/09
2.6K0
点击加载更多

相似问题

在MySql中,utf8_general_ci和utf8_unicode_ci有什么不同?

11

utf8_general_ci和utf8_unicode_ci在MySQL中有什么区别?

25

与utf8_general_ci和utf8_unicode_ci的混淆

13

从utf8_general_ci转换为utf8_unicode_ci

23

将utf8_general_ci表和字段转换为utf8_unicode_ci

21
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文