Я столкнулся с той же проблемой при использовании символов индийских языков при сохранении в полях DB nvarchar. Затем я прошел эту статью Microsoft -
http://support.microsoft.com/kb/239530
Я следовал этому, и моя проблема с юникодом была решена. В этой статье они говорят - Вы должны предшествовать всем строкам Юникода с префиксом N , когда вы имеете дело со строковыми константами Юникода в SQL Server
Поддержка Unicode SQL Server
Типы данных SQL Server Unicode поддерживают кодировку UCS-2. Типы данных Unicode хранят символьные данные, используя два байта для каждого символа, а не один байт. В двух байтах имеется 65 536 различных битовых комбинаций, поэтому Юникод может использовать один стандартный набор битовых комбинаций для кодирования каждого символа на всех языках, включая такие языки, как китайский, с большим количеством символов.
В SQL Server типы данных, поддерживающие данные Unicode:
nchar
nvarchar
nvarchar(max) – new in SQL Server 2005
ntext
Использование nchar, nvarchar, nvarchar (max) и ntext аналогично char, varchar, varchar (max) и text соответственно, за исключением:
- Unicode supports a wider range of characters.
- More space is needed to store Unicode characters.
- The maximum size of nchar and nvarchar columns is 4,000 characters, not 8,000 characters like char and varchar.
- Unicode constants are specified with a leading N, for example, N'A Unicode string'
ОТНОСИТСЯ К
Microsoft SQL Server 7.0 Standard Edition
Microsoft SQL Server 2000 Standard Edition
Microsoft SQL Server 2005 Standard Edition
Microsoft SQL Server 2005 Express Edition
Microsoft SQL Server 2005 Developer Edition
Microsoft SQL Server 2005 Enterprise Edition
Microsoft SQL Server 2005 Workgroup Edition