将VB6字符转换为C#字符串

时间:2014-11-07 13:22:25

标签: c# vb6

我想将旧的VB6项目升级到更新的技术,我在下面有这些值,不知道如何翻译它们。

Chr(&H31) & Chr(&H1) & Chr(&H50) & Chr(&H31) & Chr(&H17)

所以我的第一个问题是如何识别这些?是十六进制值还是其他什么?我似乎没有在ascii表中找到它们。 'H'代表什么?

其次,我如何制作一个c#字符串呢?

3 个答案:

答案 0 :(得分:8)

Chr将字符代码转换为字符,在C#中你可以直接转换:

char c1 = (char)0x31;

(也改为使用C#和十六进制文字而不是VB6')

但是在构建字符串时,使用转义更容易:

string s1 = "\x31\x01\x50\x31\x16";

答案 1 :(得分:1)

作为你的&#34;角色&#34;包括特殊/控制/不可打印的字符(1<SOH>P1<ETB>),我希望这实际上是非字符串数据,因此不应该存储为字符串。

根据实际需要的使用情况,您最好使用字节数组:

byte[] data = new byte[] { 0x31, 0x01, 0x50, 0x31, 0x17 }

答案 2 :(得分:0)

如果您无法识别函数参数并仍然得到相同的结果,您始终可以从C#应用程序中调用本机VB函数。

  • 您只需添加参考Microsoft.VisualBasic
  • 即可
  • 调用函数Strings.Chr

您对结果更有信心:)