2015-07-09 3 views
-1

У меня есть проект VB.net, в котором мне нужно преобразовать символ в шестнадцатеричное значение. По https://msdn.microsoft.com/de-de/library/963zt96e(v=vs.90).aspx, я попробовал это (пример):Функция hex() возвращает неправильные значения - почему?

Dim sChar as String = "€" 
Dim sNum as Integer = AscW(sChar) 
Dim sHex as String = hex(sNum).ToString 

Когда я поставил точку останова после этого, я получаю эти значения в прямой консоли:

?sNum 
8364 
?hex(sNum) 
"20AC" 

что правильно и работает, как ожидалось.

Но вычисленное значение в запущенной программе мусор:

?sHex 
"20254" 

Почему я получаю разные результаты в выполнении кода и прямой консоли ввода? И как получить ожидаемое строковое значение ("20AC")?

+0

Я не могу воспроизвести это. – GSerg

+0

Какова ценность sNum? Возможно, это проблема кодирования. –

+0

Почему 'hex' в нижнем регистре? У вас есть еще одна функция, которую вы назвали 'hex'? – GSerg

ответ

0

хорошо, нашел решение (но без объяснений)

sHex = convert.ToString(sNum, 16)

Я не могу объяснить эти неправильные значения, но выше код работает для меня, на всякий случай, что кто-то имеет такую ​​же проблему.

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