Не удается вставить символ «≤» в SQL Server 2008 - PullRequest
4 голосов
/ 02 декабря 2010

У меня есть база данных SQL Server 2008 и поле nvarchar(256) таблицы. Сумасшедшая проблема в том, что когда я запускаю этот запрос:

update ruds_values_short_text 
set value = '≤ asjdklasd' 
where rud_id=12202 and field_code='detection_limit'

, а затем

select * from ruds_values_short_text  
where rud_id=12202 and field_code='detection_limit'

Я получаю этот результат:

12202 detection_limit = asjdklasd 11

Вы можете видеть, что символ ≤ был преобразован в =

Это проблема, связанная с кодированием, наверняка, если я попытаюсь вставить '≤' в Notepad ++, он вставит '=', но я получу '≤', когда преобразую ANSI в UTF-8.

Итак .. Я думаю, что я должен написать запрос в UTF8 .. но как? Спасибо.

Ответы [ 2 ]

7 голосов
/ 02 декабря 2010

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

update ruds_values_short_text 
set value = N'≤ asjdklasd'
where rud_id=12202 and field_code='detection_limit'
1 голос
/ 02 декабря 2010

Попробуйте update ruds_values_short_text set value = N'≤ asjdklasd' where rud_id=12202 and field_code='detection_limit'.Буква N указывает на то, что вы предоставляете национальный язык, поэтому он учитывает кодировку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...