你能告诉我为什么Asc()函数返回不正确的结果吗?
Dim TestChar = Chr(128)
Dim CharInt = Asc(TestChar) ' this is a mistake on Windows 7 x64. Asc(TestChar) returns 136 instead of 128
我在另一台计算机上执行了此代码,结果是128.
感谢。
答案 0 :(得分:12)
您的计算机使用的是其他默认代码页。
Asc
函数使用系统当前的ANSI代码页
Chr
函数只是将值转换为char
。 (除非它是> 255
)
答案 1 :(得分:2)
我刚刚在Windows 7 x64上使用Visual Studio 2010尝试了这个确切的代码并获得了128的预期值。我尝试了混合选项(推断,显式等等)并且值保持不变。你能否提供更多细节来帮助追踪这个问题?
Sub Main()
Dim TestChar = Chr(128)
Dim CharInt = Asc(TestChar)
Console.WriteLine(CharInt)
Stop
End Sub
答案 2 :(得分:1)
问题是我使用了不同的默认代码页。我把它改成了英文,代码工作得很好。 谢谢!