2012-05-10 4 views
6

Я хочу использовать текст юникода на своем сайте. У меня есть тип данных nvarchar (max) в базе данных для хранения данных. Когда я сохраняю текст unicode в базу данных, он отлично работает. Однако, когда я пытаюсь выполнить некоторую операцию sql, текст юникода изменяется на «?????», Например, запрос нижес использованием текста unicode в sql server 2008

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 использует N к любому цитируемого строкового ввода при создании сценариев DDL для вас.

+0

Хорошее место. Текст Юникода должен быть квалифицирован как таковой с использованием модификатора 'N'. – Oded

1

вы должны установить параметры сортировки базы данных к обобщению, который принимает этот тип символа или вы можете добавить пункт сортировки на ваш выбор, как это (Google сказал мне, что это хинди характер)

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

что не будут работать, но я нашел это на BOL для SQL Server 2005:

4 хинди сверка является устаревшим в SQL Server 2005, поскольку 2000 сортировки таблицы для Windows используется в этой версии SQL Server. Сопоставление все еще существует на сервере, но оно не будет поддерживаться в будущей версией SQL Server, и оно не отображается в :: fn_helpcollations().

5 Параметры сортировки хинди и Lithuanian_Classic являются устаревшими в SQL Server 2005. Эти параметры сортировки по-прежнему существует на сервере, но они будут не поддерживаться в будущих версиях SQL Server, и они не показывают в :: fn_helpcollations().

за 2008 год:

Хинди (Индия) - не доступно на уровне сервера

Смежные вопросы