none
一个字符转换引发的问题!诡异..... RRS feed

  • 常规讨论

  • 开发环境是VS2005(VB.Net)

    定义一个Byte数组:Dim arrByte() As Byte = New Byte() {84, 83, 46, 53, 46, 86, 101, 114, 115, 105, 111, 110, 0}

    通过系统默认的编码进行字符转换:Dim strTest As String = System.Text.Encoding.Default.GetString(arrByte)

    结果是:strTest  = "TS.5.Version   

    而将Byte数组最后一个元素0去掉后:Dim arrByte() As Byte = New Byte() {84, 83, 46, 53, 46, 86, 101, 114, 115, 105, 111, 110}

    结果是:strTest  = "TS.5.Version”

    不解的地方:0 作为字符串的结束符,为什么在VB.net里面是这样的结果?该示例在C#里运行的结果是 strTest  = "TS.5.Version\0"!

    想请教的方法:如何在不去掉Byte数组最后的0的基础上使程序的运行结果是strTest  = "TS.5.Version”,我对VB不熟悉!请大家帮帮忙?谢谢!!

     

     


    知识在于积累!
    2011年1月15日 5:15

全部回复