2012-06-26 2 views
5

Я пытаюсь добавить некоторый персидский текст в базу данных SQL Server 2005.Персидские номера в SQL Server 2005

Там нет никаких проблем с буквами, но персидские цифры (۱،۲،۳،...) преобразуются в ? ...

Например, если добавить этот текст (سلام ۱۲۳۴‍‍‍) в базу данных, будет (سلام ؟؟؟؟) в базе данных/

Что мне делать? (например, какую сортировку я должен использовать?)

Я использую Arabic_CI_AS сортировки. в this списке, фарси (персидский) сверка является Arabic_CI_AS (SQL Server 2005 не имеет Persian сверку, но 2008 имеет!)

Примечание: Я не могу использовать более новые версии SQL Server ...

+1

ли с помощью одного из Юникода (типов данных NCHAR, NVARCHAR) вариант? – Robb

+0

Я использую тип данных 'nvarchar'. –

ответ

7

Если вставить строковые литералы, не забудьте пометить строки Unicode с N «», например,

select N'سلام ۱۲۳۴‍‍‍' 

Далее, убедитесь, что знаки вопроса, являются ли только проблема отображения в SSMS:

declare @t nvarchar(50) = N'سلام ۱۲۳۴‍‍‍' 
select unicode(substring(@t, 1, 1)) 
select unicode(substring(@t, 2, 2)) 
select unicode(substring(@t, 3, 3)) 
select unicode(substring(@t, 4, 4)) 

возвращает значения Unicode для каждого символа:

1587 
1604 
1575 
1605 

Я помню, что SSMS 2005 были проблемы с отображением диапазонов определенный Unicode в окне результатов.

1

Вы можете использовать Arabic_CI_AI сверку и решить эту проблему Я надеюсь, что поможет вам ..