Sql server 2008 高棉Unicode、英语和MicrosoftSQLServer2008结果为问号

Sql server 2008 高棉Unicode、英语和MicrosoftSQLServer2008结果为问号,sql-server-2008,unicode,Sql Server 2008,Unicode,我已经在互联网上搜索了很长一段时间,找到了一些信息,但总的来说还是不起作用 我正在使用MicrosoftSQLServer2008SP2作为数据库,在这个数据库中,我需要编写高棉Unicode或英文字母 根据这里的博客: 据说我需要为高棉Unicode和数据类型NCHAR、NVARCHAR或NTEXT使用排序规则SQL_Latin1_General_CP850_BIN,因为它们是Unicode兼容的 当我使用以下SQL语句时: use pis INSERT INTO dbo.pmd (pati

我已经在互联网上搜索了很长一段时间,找到了一些信息,但总的来说还是不起作用

我正在使用MicrosoftSQLServer2008SP2作为数据库,在这个数据库中,我需要编写高棉Unicode或英文字母

根据这里的博客:

据说我需要为高棉Unicode和数据类型NCHAR、NVARCHAR或NTEXT使用排序规则SQL_Latin1_General_CP850_BIN,因为它们是Unicode兼容的

当我使用以下SQL语句时:

use pis

INSERT INTO dbo.pmd (patient_code, last_name, first_name, age, sex, province, district, commune, village) VALUES ('0600-075D4-4AC8', 'ៃាំុំឌគៃុំាំឌ', 'ៃគុំដសហគៃុំះកឆញហេឆ', '2008', 'm', '060000', '060400', '060403', '06040304')
表dbo.pmd中last_name和first_name的结果如下所示:

姓氏:????????????? 名字:

其余的值都可以

所以右键点击我的数据库,点击属性,显示排序规则设置为SQL\u Latin1\u General\u CP850\u BIN。 右键单击表dbo.pmd,单击Design,向我显示last_name和first_name被定义为NVARCHAR(50)

那么,为了将高棉Unicode字符存储在数据库中,我需要做些什么

顺便说一下:
这里的SQL示例工作起来很有魅力。。。看不出区别…(除此之外,此语句将使用标准排序规则,这对我也不适用。

您需要在字符串上使用N使其成为unicode

INSERT INTO dbo.pmd (patient_code, last_name, first_name, age, sex,province, district, commune, village)
VALUES ('0600-075D4-4AC8', N'ៃាំុំឌគៃុំាំឌ', N'ៃគុំដសហគៃុំះកឆញហេឆ', '2008', 'm', '060000', '060400', '060403', '06040304')
一个简单的例子:

DECLARE @khmertest TABLE (
            SomeText nvarchar(50) COLLATE SQL_Latin1_General_CP850_BIN,
            SomeText2 nvarchar(50)
      )

INSERT @khmertest VALUES ('ៃាំុំឌគៃុំាំឌ', 'ៃាំុំឌគៃុំាំឌ')
INSERT @khmertest VALUES (N'ៃាំុំឌគៃុំាំឌ', N'ៃាំុំឌគៃុំាំឌ')

SELECT * FROM @khmertest
给予


注释:在工作的Firefox中,这些字符显示为unicode块,现在在Opera中看起来还可以。我这么说之前我认为“这是一个多么奇怪的脚本”。
SomeText    SomeText2
?????????????   ?????????????
ៃាំុំឌគៃុំាំឌ   ៃាំុំឌគៃុំាំឌ