"utf8_unicode_ci"和"utf8_unicode_520_ci"之间有什么区别?

22 浏览
0 Comments

"utf8_unicode_ci"和"utf8_unicode_520_ci"之间有什么区别?

最近,我升级了WAMPServer,现在在phpMyAdmin中,我看到了两个排序规则utf8_unicode_ciutf8_unicode_520_ci。在土耳其应用程序中,我一直使用"utf8_unicode_ci",但我想知道新的*_520排序规则有何不同?

0
0 Comments

如果只需要土耳其语,那么考虑使用utf8_turkish_ci(或utf8mb4_turkish_ci、utf8mb4_tr_0900_ai_ci、utf8mb4_tr_0900_as_cs)。下面是它们之间的大部分区别(引用自http://mysql.rjweb.org/utf8_collations.html):

utf8 : utf8_turkish_ci             A=a=ª=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą  Aa  ae          az       Æ=æ
utf8 : utf8_unicode_520_ci         A=a=ª=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą  Aa  ae=Æ=æ      az
utf8 : utf8_unicode_ci             A=a=ª=À=Á=Á=Â=Ã=Ä=Å=à=á=á=â=ã=ä=å=Ā=ā=Ą=ą  Aa  ae          az       Æ=æ
utf8 : utf8_turkish_ci             B=b  C=c=Č=č          ch  cz  Ç=ç  D=d=Ď=ď      dz  Ð=ð
utf8 : utf8_unicode_520_ci         B=b  C=c=Ç=ç=Č=č      ch  cz       D=d=Ð=ð=Ď=ď  dz
utf8 : utf8_unicode_ci             B=b  C=c=Ç=ç=Č=č      ch  cz       D=d=Ď=ď      dz  Ð=ð
utf8 : utf8_turkish_ci             F=f  fz  ƒ  G=g=Ģ=ģ      gz  Ğ=ğ  H=h  hz
utf8 : utf8_unicode_520_ci         F=f  fz  ƒ  G=g=Ğ=ğ=Ģ=ģ  gz       H=h  hz
utf8 : utf8_unicode_ci             F=f  fz  ƒ  G=g=Ğ=ğ=Ģ=ģ  gz       H=h  hz
utf8 : utf8_turkish_ci             I=ı  i=Ì=Í=Í=Î=Ï=ì=í=í=î=ï=Ī=ī=Į=į=İ   ij=ij   iz              J=j
utf8 : utf8_unicode_520_ci         I=i=Ì=Í=Í=Î=Ï=ì=í=í=î=ï=Ī=ī=Į=į=İ      ij=ij   iz           ı  J=j
utf8 : utf8_unicode_ci             I=i=Ì=Í=Í=Î=Ï=ì=í=í=î=ï=Ī=ī=Į=į=İ      ij=ij   iz           ı  J=j
utf8 : utf8_turkish_ci             K=k=Ķ=ķ   L=l=Ĺ=ĺ=Ļ=ļ          lj=LJ=Lj=lj      ll  lz  Ł=ł  M=m  N=n=Ñ=ñ=Ń=ń=Ņ=ņ=Ň=ň  nz
utf8 : utf8_unicode_520_ci         K=k=Ķ=ķ   L=l=Ĺ=ĺ=Ļ=ļ=Ł=ł      lj=LJ=Lj=lj      ll  lz       M=m  N=n=Ñ=ñ=Ń=ń=Ņ=ņ=Ň=ň  nz
utf8 : utf8_unicode_ci             K=k=Ķ=ķ   L=l=Ĺ=ĺ=Ļ=ļ          lj=LJ=Lj=lj      ll  lz  Ł=ł  M=m  N=n=Ñ=ñ=Ń=ń=Ņ=ņ=Ň=ň  nz
utf8 : utf8_turkish_ci             O=o=º=Ò=Ó=Ó=Ô=Õ=ò=ó=ó=ô=õ          oe=Œ=œ      oz  Ö=ö      Ø=ø
utf8 : utf8_unicode_520_ci         O=o=º=Ò=Ó=Ó=Ô=Õ=Ö=Ø=ò=ó=ó=ô=õ=ö=ø  oe=Œ=œ      oz
utf8 : utf8_unicode_ci             O=o=º=Ò=Ó=Ó=Ô=Õ=Ö=ò=ó=ó=ô=õ=ö      oe=Œ=œ      oz           Ø=ø
utf8 : utf8_turkish_ci             P=p  Q=q  R=r=Ř=ř   S=s=Š=Š=š=š        sh  ss=ß  sz  Ş=ş
utf8 : utf8_unicode_520_ci         P=p  Q=q  R=r=Ř=ř   S=s=Ş=ş=Š=Š=š=š    sh  ss=ß  sz
utf8 : utf8_unicode_ci             P=p  Q=q  R=r=Ř=ř   S=s=Ş=ş=Š=Š=š=š    sh  ss=ß  sz
utf8 : utf8_turkish_ci             T=t=Ť=ť  TM=tm=  tz  U=u=Ù=Ú=Ú=Û=ù=ú=ú=û=Ū=ū=Ů=ů=Ų=ų      ue      uz  Ü=ü      V=v
utf8 : utf8_unicode_520_ci         T=t=Ť=ť  TM=tm=  tz  U=u=Ù=Ú=Ú=Û=Ü=ù=ú=ú=û=ü=Ū=ū=Ů=ů=Ų=ų  ue      uz           V=v
utf8 : utf8_unicode_ci             T=t=Ť=ť  TM=tm=  tz  U=u=Ù=Ú=Ú=Û=Ü=ù=ú=ú=û=ü=Ū=ū=Ů=ů=Ų=ų  ue      uz           V=v
utf8 : utf8_turkish_ci             W=w  X=x  Y=y=Ý=Ý=ý=ý=ÿ=Ÿ      yz
utf8 : utf8_unicode_520_ci         W=w  X=x  Y=y=Ý=Ý=ý=ý=ÿ=Ÿ      yz
utf8 : utf8_unicode_ci             W=w  X=x  Y=y=Ý=Ý=ý=ý=ÿ=Ÿ      yz
utf8 : utf8_turkish_ci             Z=z=Ž=Ž=ž=ž  zh  zz           Þ=þ
utf8 : utf8_unicode_520_ci         Z=z=Ž=Ž=ž=ž  zh  zz           Þ=þ
utf8 : utf8_unicode_ci             Z=z=Ž=Ž=ž=ž  zh  zz           Þ=þ

注意到Æ、Ç、Ð、Ğ等在不同的排序规则下排序方式不同。

520可能不会对普通文本产生影响,特别是对于土耳其语。例如,土耳其语和520认为Ð是一个单独的字母,但utf8_unicode_ci将其视为等同于D。看起来520更接近土耳其语,但并非对所有的字母都是完全相同的。

0
0 Comments

"utf8_unicode_ci"和"utf8_unicode_520_ci"之间的区别是什么?

在这个问题中,主要存在的问题是对波兰字母"Ł"(带有横线的L)进行排序和比较时出现了问题。在波兰语中,字母"Ł"在字母"L"之后,在字母"M"之前。具体的排序规则如下:

utf8_polish_ci: Ł 大于 L,小于 M

utf8_unicode_ci: Ł 大于 L,小于 M

utf8_unicode_520_ci: Ł 等于 L

utf8_general_ci: Ł 大于 Z

为了避免这种排序和比较问题,建议使用utf8_unicode_ci(或者更好的utf8mb4_unicode_ci)。对于波兰人来说,在搜索结果中是否希望"Stanisław"和"Stanislaw"都能出现呢?在Chrome中,当我使用Ctrl+F搜索"L"时,"Ł"和"L"都会被突出显示。

,选择适合自己目的的排序规则即可。"utf8_unicode_520_ci"似乎是从"general_ci"升级而来,而不是更新的更好的替代品。

0
0 Comments

根据文档的描述,Unicode排序规则名字中可能包含版本号,表示该排序规则基于Unicode排序算法(UCA)的版本。没有版本号的UCA排序规则使用的是版本4.0.0的UCA权重键值。而像"utf8_unicode_520_ci"这样的排序规则则基于UCA 5.2.0的权重键值。

简单来说,版本号越高,排序规则越新。而没有版本号的排序规则则是最旧版本。

通过阅读键值列表并试图评估哪个排序规则对大多数用户来说更好?是的。

所以,这个问题的出现就是想要知道在"utf8_unicode_ci"和"utf8_unicode_520_ci"这两个排序规则中,哪个更适合大多数用户使用。

解决方法是阅读和比较两个排序规则对应的权重键值列表,然后根据需求和实际情况选择合适的排序规则。

0