我们将更改现有数据库和列的排序规则。我们使用两种不同的排序规则 Turkish_CI_AS,SQL_Latin1_General_CP1254_CS_AS,我们将使用SQL_Latin1_General_CP1_CI_AS。
我想知道新的整理是否支持土耳其特殊字母?那么,像ç,ı,ğ或ü这样的字母会变成不同的字符吗?
答案 0 :(得分:1)
排序与字符编码不同。更改排序规则只会更改字符排序方式的比较规则,不它们在数据库中的表示方式。但是,根据Collation and Code Page Architecture中的表格,数据的整理用作客户端驱动程序的提示,以将非unicode 字符映射到特定代码页。
所以如果您的列的类型为VARCHAR或CHAR,则数据将(显然)更改,因为以前在CP 1254中的字符将被解释作为CP 850中的字符。因此ç (\231)
将成为þ (\231)
,依此类推。严格来说,可以将客户端中的数据重新解释为您想要的任何代码页,但实际上这是不可行的,并且需要很多低级别(即驱动程序)知识。
但如果您的列是NVARCHAR或NCHAR,则编码不会更改,因为字符将UCS-2LE编码并进行操作(ç \u00e7
将保留{{ 1}})。唯一会改变的是比较和排序规则(对famous Turkish collation dotted and dotless I/i comparison rules产生影响)。