7

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

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

结果

sqlunicode

解决方案是什么?谢谢

4

2 回答 2

12

尝试

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

也许您注意到 SQL ServerN在为您生成 DDL 脚本时会使用任何带引号的字符串输入。

于 2012-05-10T08:41:24.637 回答
1

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

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

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

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

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

2008年:

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

于 2012-05-10T08:42:26.837 回答