Sql server 2008 高棉Unicode、英语和MicrosoftSQLServer2008结果为问号
我已经在互联网上搜索了很长一段时间,找到了一些信息,但总的来说还是不起作用 我正在使用MicrosoftSQLServer2008SP2作为数据库,在这个数据库中,我需要编写高棉Unicode或英文字母 根据这里的博客: 据说我需要为高棉Unicode和数据类型NCHAR、NVARCHAR或NTEXT使用排序规则SQL_Latin1_General_CP850_BIN,因为它们是Unicode兼容的 当我使用以下SQL语句时: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
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
????????????? ?????????????
ៃាំុំឌគៃុំាំឌ ៃាំុំឌគៃុំាំឌ