有志者 事竟成

天行健,君子以自强不息,地势坤,君子以厚德载物。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

Posted on 2011-01-15 13:24  水寒  阅读(294)  评论(2编辑  收藏  举报
您不能对您自己的帖子投票

开发环境是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不熟!请大家帮忙解决一下?有兴趣的可以讨论一下!谢谢