Два символа с одинаковым кодом ASCII? - PullRequest
0 голосов
/ 03 декабря 2010

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

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

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

Я получу:

166 166

Мне нужно сделать аналогичную работу, но с кодом .net.

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

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

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

1 Ответ

4 голосов
/ 03 декабря 2010

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

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

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

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