当前位置: 首页 > 面试题库 >

UTF-8:一般?斌吗 Unicode?

陶锋
2023-03-14
问题内容

我试图弄清楚我应该对各种类型的数据使用哪种排序规则。我要存储的内容的100%是用户提交的。

我的理解是,我应该使用UTF-8 General CI(不区分大小写),而不是UTF-8 Binary。但是,我找不到UTF-8通用CI和UTF-8
Unicode CI之间的明显区别。

  1. 我应该在UTF-8 General或UTF-8 Unicode CI列中存储用户提交的内容吗?
  2. UTF-8 Binary适用于什么类型的数据?

问题答案:

通常, utf8_general_ciutf8_unicode_ci 快,但正确性较差。

区别在于:

对于任何Unicode字符集, 使用_general_ci归类执行的操作都比_unicode_ci归类执行的操作要快
。例如,utf8_general_ci归类的比较比utf8_unicode_ci的比较更快,但正确性稍差。原因是utf8_unicode_ci支持诸如扩展之类的映射。也就是说,当一个字符比较等于其他字符的组合时。例如,在德语和其他一些语言中,“ß”等于“
ss”。utf8_unicode_ci还支持收缩和可忽略字符。utf8_general_ci是旧版归类,不支持扩展,收缩或可忽略的字符。它只能在字符之间进行一对一比较。

引用自:http :
//dev.mysql.com/doc/refman/5.0/en/charset-unicode-
sets.html

有关更多详细说明,请阅读以下来自MySQL论坛的帖子:http
:
//forums.mysql.com/read.php?103,187048,188748

至于utf8_bin: utf8_general_ciutf8_unicode_ci都 执行不区分大小写的比较。相反,
utf8_bin区分大小写 (除其他差异外),因为它比较字符的二进制值。



 类似资料:
  • 嗨,我试图使我在UTF-8兼容的应用程序之一。我的环境如下:linux操作系统,apahce网络服务器作为超文本传输协议监听器,tomcat作为servlet引擎 配置了mod_jk和tomcat的apache s使用ajp连接器。 我已经从少数网站上阅读了UTF-8的基本指南,并根据建议尝试了以下方法 为服务器中的连接器设置和。xml 设置语言bashrc/. file使用 将apache服务器

  • 一个处理UTF-8编码字符串的简单、小巧、跨平台的泛型库。

  • 问题内容: UTF-8字符串可以包含零字节吗?我要通过ascii纯文本协议发送它,是否应该使用base64之类的东西对其进行编码? 问题答案: 是的,UTF8中的零字节是代码点0,NUL。有没有将在UTF8与在它一个零字节的任何位置进行编码等Unicode代码点。 可能的代码点及其UTF8编码为: 您可以看到,所有非零ASCII字符都被表示为自己,而所有多字节序列的所有字节均具有1的高位。 您可能

  • 我正在处理一个使用UTF-8编码了两次的遗留文件。例如,编码点()本应编码为,但改为编码为(是的UTF-8编码,是的UTF-8编码)。 假设数据在CP-1252中编码,则执行第二次编码。 为了回到UTF-8编码,我使用了以下(似乎错误)命令 我的问题是iconv似乎无法转换回一些字符。更准确地说,iconv无法转换UTF-8表示形式包含映射到CP-1252中控制字符的字符。一个例子是代码点ρ():

  • 2. Unicode和UTF-8 为了统一全世界各国语言文字和专业领域符号(例如数学符号、乐谱符号)的编码,ISO制定了ISO 10646标准,也称为UCS(Universal Character Set)。UCS编码的长度是31位,可以表示231个字符。如果两个字符编码的高位相同,只有低16位不同,则它们属于一个平面(Plane),所以一个平面由216个字符组成。目前常用的大部分字符都位于第一个

  • 我尝试用JasperReport导出CSV文件,问题是当我想打印像“€”这样的货币时。 当我搜索解决方案时,我意识到这是关于文件编码的!我写这个代码! JasperReport导出的文件编码在“没有BOM的UTF-8”上。所以当我用Excel打开文件时,“€”看起来像“,”。但是当我用记事本打开文件时,“€”看起来像“€”。 在记事本上,我将文件编码转换为UTF-8(我认为是BOM),我保存文件。