2010-12-03 4 views
0

Я пытаюсь очистить недавно импортированную базу данных SQL Server 2008, которая имеет много недопустимых атрибутов для моего приложения. и я нашел разные символы с тем же кодом ASCII, что возможно ?.Два символа с тем же кодом ASCII?

Если я выполнить этот запрос:

select ASCII('║'), ASCII('¦') 

я получаю:

166 166 

мне нужно сделать подобную работу, но с .net кода.

Если я прошу этот полукокс в .net:

? ((int)'║').ToString() + ", " + ((int)'¦').ToString() 
I get: 
"9553, 166" 

Кто-нибудь может объяснить, что происходит

+1

Ни один из этих символов ASCII - ASCII идет только до 127 (это 7 разрядный код). – 2010-12-03 11:48:35

ответ

4

Вместо ASCII, используйте функцию UNICODE.

Оба и | не являются ASCII-символов, поэтому вызов ASCII с ними будет конвертировать неправильно и привести к неправильной значения .

Кроме того, вам нужно использовать юникод строки при вызове функции UNICODE, используя префикс N:

SELECT UNICODE(N'║'), UNICODE(N'|') 
-- Results in: 9553, 166 
+0

Хорошо, но как я могу получить с sql аналогичный результат для (int) '...? – 2010-12-03 12:03:21

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