一.一个具体的例子引发的问题 当今是国际化的时代,多种语言可能同时显示在屏幕上.比如一个人可能喜欢听华语歌.英文歌.韩文歌和日语歌,又比如他的联系人中有中国人.英国人.日本人.韩国人以及有英文名字的中国人. 在这种情况下,他的手机上需要维护一个列表,每一项可能是中文.韩文.英文和日文.在许多情况下需要对这个列表进行维护,那么如何对这些表项进行排序呢?为了解决这个问题,至少要回答以下几个问题: 中文.韩文.英文.日文的顺序是怎样的呢?那个语种在前面呢? 同一个语种内部如何排序呢?比如中文,是按照汉…
一.UCA 简介 Unicode Collation Algorithm (UCA) 是 Unicode 规定的如何比较两个字符串大小的算法,也是事实上的标准.我们先来看下它的几个特征. 1.1 Multi-Level Comparison 为了处理字符串比较的复杂性,UCA 采用了多级比较的方法. 当比较两个字符串时,先比较最重要的特征——字母.如果字母相同,再比较重音 (accent).如果重音还相同,再比较大小写.依次类推,这些特征之间的顺序可以改变.  如上图所示,首先比较基本字符串,…
在 Python2 中处理 Unicode 字符串,需遵循如下规则: 1. 程序中的字符串要加前缀 u 2. 不要用 str(),而应该用 unicode() 作为字符串转换函数.不要使用 chr(),而应该使用 unichr() 3. 不要使用 string 模块 4. 如非必要,不要使用 encode 和 decode 编解码 unicode 字符串.只有当要将 unicode 字符串写入文件,数据库,或者网络时,要先将其 encode 为 byte stream,然后再写入,同样的,从文件…
排序规则术语        什么是排序规则呢? 排序规则是根据特定语言和区域设置标准指定对字符串数据进行排序和比较的规则.SQL Server 支持在单个数据库中存储具有不同排序规则的对象.MSDN解释:在 Microsoft SQL Server中,字符串的物理存储由排序规则控制.排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则 当 Transact-SQL 语句在具有不同排序规则设置的不同数据库上下文中运行时,其运行结果可能会不同.如果可能,请为您的组织使用标准化排序规则.我管…
sqlserver的排序规则大概分为Windows 排序规则和 SQL Server 排序规则.数据在安装的时候,默认不设置会默认为SQL_Latin1_General_CP1_CI_AI.数据库在创建的时候,如果不设定会使用数据默认的排序规则,此外,还可以对表中的列设定排序规则. 这里只是记录一下最近遇到这类问题时的一些注意事项. 首先SQL_Latin1_General_CP1_CI_AI对应的1252,而Chinese_PRC_CI_AS对应gbk的936.如果要正确的保存中文,则需要在建…
http://blog.csdn.net/delphigbg/article/details/12744807 MSSQL排序规则总结   什么是排序规则呢? 排序规则根据特定语言和区域设置标准指定对字符串数据进行排序和比较的规则.SQL Server 支持在单个数据库中存储具有不同排序规则的对象.MSDN解释:在 Microsoft SQL Server  中,字符串的物理存储由排序规则控制.排序规则指定表示每个字符的位模式以及存储和比较字符所使用的规则 当 Transact-SQL 语句在具…
/*   排序规则根据特定语言和区域设置的标准指定对  字符串  数据 进行排序和比较的规则.   以 ORDER BY 子句为例:如果按升序排列,说英语的人认为字符串 Chiapas 应排在 Colima 之前.   但是,对于在墨西哥说西班牙语的人来说,他们会认为以 Ch 开头的单词应显示在以 C 开头的单词列表的末尾.   排序规则规定了这些排序和比较规则.Latin_1 General 排序规则在 ORDER BY ASC 子句中将 Chiapas 排在 Colima 之前,   而 T…
摘自: http://www.2cto.com/database/201112/115138.html 以下的文章主要向大家描述的是SQL Server更改排序规则的实现过程,以及在实现其实际操作过程中我们要用到的实际应用代码的描述,本文首先是以使用 ALTER TABLE 语句更改列的排序规则讲起的: CREATE TABLE MyTable (PrimaryKey int PRIMARY KEY, CharCol varchar(10) COLLATE French_CI_AS NOT NU…
之前碰到了数据库排序规则冲突问题,即百度或者 Google 的老话题: “ 无法解决 equal to 操作中‘ sql_latin1_general_cp1_ci_as ’和‘ chinese_prc_ci_as ’之间的排序规则冲突 ” .一般的方法,是在创建临时表或表连接的时候加上规则校勘语句 COLLATE “规则名”解决,如: create table #example ( EXP_Name varchar (50) collate CHINESE_PRC_CI_AS NULL ) s…
VS中新增的轻量级数据库LocalDB,有个这个,开发人员就不必再安装庞大的SQL server了,可以方便地测试运行小型项目:既然是轻量级数据库,它抛弃了庞大的身躯,功能上当然也会受到局限,其中之一就是它默认的排序规则,使用默认排序规则,从网站前台添加的中文数据在数据库中显示乱码或者变问号:这个问题困扰了我好几天时间,通过各种搜索,终于找到解决方案:特此转述,希望能帮到有同样困惑的您! 新建数据库默认排序规则为:SQL_Latin1_General_CP1_CI_AS,如果使用中文会出现乱码,…