2010-08-09 2 views
2

я попробовать этот код в SQL SERVER 2005Hebrew кодирование в SQL Server2005

declare @userName nvarchar(50) 
set @userName='איש2'  
print @userName 

, но я получаю эту

???2 

, что является причиной?

похоже, что он заменяет ивритский символ на «?»

10x

+0

FWIW я получаю то же самое в SQL студии управления 2008 и то же самое в представлении таблицы, если я вставляю строку в таблицу. Поэтому он где-то заблудился, и для меня это не очевидно, если это чтение или отпечаток. – Rup

+0

Еще несколько точек данных: если я ввешу эту строку в поле в своем приложении, она будет сохранена правильно. Если я просмотрю таблицу в студии управления, тогда в представлении таблицы мне будут показаны ивритские символы, но они будут назад. Если я выберу значение в nvarchar в консоли и распечатаю его, он правильно напечатает в окне сообщения. Итак, я думаю, проблема в том, что консоль читает строку? – Rup

+0

В вашем запросе нет ничего плохого. Я пробовал это в своей студии управления Microsoft SQL (2008) , и он работает ... Это должно быть что-то в ваших настройках ... но я не знаю что. – Asaf

ответ

8

Используйте префикс N так строковый литерал интерпретируются как Юникод не CHAR под кодовой страницей по умолчанию параметров сортировки независимо от вашей базы данных является

declare @userName nvarchar(50) 
set @userName=N'איש2'  
print @userName 
Смежные вопросы