在sql server 2008中使用unicode文本

时间:2012-05-10 08:36:08

标签: sql-server unicode collation

我想在我的网站中使用unicode文字。我在数据库中有nvarchar(max)数据类型来存储数据。当我将unicode文本保存到数据库中时,它工作正常。但是当我尝试执行一些sql操作时,unicode文本被更改为“?????” 例如,下面的查询

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

结果

sqlunicode

这是什么解决方案? 感谢

2 个答案:

答案 0 :(得分:11)

尝试

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

也许你注意到SQL Server在为你生成DDL脚本时会对任何引用的字符串输入使用N

答案 1 :(得分:1)

您必须将数据库排序规则设置为接受此类字符的排序规则,或者您可以在此选择中添加排序规则条款(谷歌告诉我这是印地语字符)

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

那不行,但我在BOL for SQL Server 2005上找到了这个:

  

4在SQL Server 2005中不推荐使用印地语排序规则,因为   Windows 2000排序表用于此SQL Server版本。该   排序规则仍然存在于服务器中,但不支持   未来的SQL Server版本,它没有出现在   :: fn_helpcollat​​ions()。

     

5在SQL中不推荐使用Hindi和Lithuanian_Classic排序规则   Server 2005.这些排序规则仍然存在于服务器中,但它们会存在   未来的SQL Server版本不支持它们,并且它们不显示   up in :: fn_helpcollat​​ions()。

for 2008:

  

印地语(印度) - 在服务器级别不可用