我在SQL Server中创建了一个数据库,COLLATION KR949_BIN2,这意味着这个数据库的代码页是949。是否有可能根据此数据库中的代码页获得字符的编码值?例如,代码页949中字符'좩'的编码值是0xA144,是否有SQL语句,我可以从该数据库中的字符'좩'获得0xA144 ?此外,是否有一种方法插入'좩'到其编码值0xA144列?
基于字符数据表示不正确时,客户端计算机的代码页不同于SQL Server 2005中数据库的代码页,我怀疑你实际上使用的是Korean_Wansung_CI_AS
排序或类似的东西:
方法2:对数据库使用适当的排序
如果必须使用非unicode数据类型,请始终确保数据库的代码页和任何非unicode列的代码页能够正确存储非unicode数据。例如,如果希望存储代码页949(韩语)字符数据,则对数据库使用韩语排序规则。例如,对数据库使用Korean_Wansung_CI_AS排序规则。
在这种情况下,是的,您可以按照以下示例看到并插入0xA144
:
create table #Wansung (
[Description] varchar(50),
Codepoint varchar(50) collate Korean_Wansung_CI_AS
);
insert #Wansung ([Description], Codepoint)
select 'U+C8A9 Hangul Syllable Jwaeg', N'좩';
insert #Wansung ([Description], Codepoint)
select 'From Windows-949 encoding', 0xA144;
select [Description], Codepoint, cast(Codepoint as varbinary(max)) as Bytes, cast(unicode(Codepoint) as varbinary(max)) as UTF32
from #Wansung;
返回结果: