2012-05-10 41 views
6

我想在我的網站中使用unicode文本。我在數據庫中有nvarchar(max)數據類型來存儲數據。當我將unicode文本保存到數據庫時,它工作正常。但是,當我嘗試執行一些SQL操作的Unicode文本更改爲「?????」 例如低於在SQL Server 2008中使用unicode文本

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 

結果

sqlunicode

,這是什麼解決的查詢? 感謝

+0

什麼是數據庫的默認排序規則? – Oded

+0

@Oded默認排序規則是SQL_Latin1_General_CP1_CI_AS – Paras

回答

10

嘗試

declare @unicodetext nvarchar(250) 
set @unicodetext = N'बन्द' 
select @unicodetext 

也許你注意到的SQL Server生成你DDL腳本時使用N任何引用字符串輸入。

+0

好點。 Unicode文本需要使用'N'修飾符來限定。 – Oded

1

你有你的數據庫排序規則設置爲接受這種類型的角色,或者你可以在你選擇這樣添加的整理子句覈對(谷歌告訴我這是一個印地文字符)

declare @unicodetext nvarchar(250) 
set @unicodetext='बन्द' 
select @unicodetext 
COLLATE Indic_General_90_CI_AS 

那不會工作,但我發現這個在BOL爲SQL Server 2005:

4的印地文整理已被棄用SQL Server 2005中,因爲 Windows 2000的排序表在此SQL Server版本中使用。 排序規則仍然存在於服務器中,但在將來的SQL Server發行版中將不支持 ,並且它不會顯示在 :: fn_helpcollat​​ions()中。

5的印地文和Lithuanian_Classic歸類是棄用SQL Server 2005中這些排序規則仍然存在於服務器上,但它們將不 在未來的SQL Server版本的支持,而且他們不顯示 起來:: fn_helpcollat​​ions()。

爲2008:

印地文(印度) - 不可用在服務器級別