C#:
Console.Write(Encoding.Default.GetBytes(new char[] { (char)149 })[0]);
VB:
Dim b As Char() = {Chr(149)} Console.WriteLine(Encoding.Default.GetBytes(b)(0))
C#输出为63,而VB是149的正确字节值.
如果你使用任何其他值,如145等,输出匹配.
通过调试,VB和C#默认编码器都是SBCSCodePageEncoding.
有人知道为什么吗?
我已经通过直接初始化一个字节数组来纠正了示例代码,它本来应该是第一个,但我仍然想知道为什么不应该是语言特定的编码器就是这样.