我在这里有一个奇怪的问题。在我的代码中,变量b字符串的值为“Test Test Test”。我们可以在调试变量时以及在文本可视化器中看到这个值。使用消息框时可变截断
现在的问题是,如果我使用Messagebox显示相同的字符串,则值就是“Test”。我可以在这里做什么来获得完整的价值。
我正在从ebcdic编码的字节转换为相应的utf8字符串并执行上述操作。有什么想法吗。以下是我的示例代码。
Dim hex As String = "e385a2a300000000e385a2a3000000e385a2a3"
Dim raw As Byte() = New Byte((hex.Length/2) - 1) {}
Dim i As Integer
For i = 0 To raw.Length - 1
raw(i) = Convert.ToByte(hex.Substring((i * 2), 2), &H10)
Next i
Dim w As String = System.Text.Encoding.GetEncoding(37).GetString(raw)
Dim raw1 As Byte() = Encoding.UTF8.GetBytes(w)
Dim b As String = Encoding.UTF8.GetString(raw1)
MessageBox.Show(b)
ASCII 0是仅在MSGBOX中的字符串终止,我记得它仍然是VB6中的异常,它在写入变量时还在调试窗口中截断了一个字符串 – Martin 2011-12-23 12:22:40