0

当我尝试这样做时遇到了一些问题:

public byte[] Login()
    {
        return Encoding.ASCII.GetBytes("WA\x01\x00\x00\x19\xf8\x05\x01\xa0\x8a\x84\xfc\x11iPhone-2.6.7-5222\x00\x08\xf8\x02\x96\xf8\x01\xf8\x01\x7e\x00\x07\xf8\x05\x0f\x5a\x2a\xbd\xa7");
    }

这些字节\x8a\x84都被编码为\xbf\xbf我不想要的。我已经尝试过使用默认编码、UTF 和 Unicode,但它们都不能提供我需要的东西。

这是一个套接字客户端。

4

2 回答 2

3

但他们都没有提供我需要的东西

好吧,我们不知道你真正需要什么

如果您尝试获取字节值0x8a0x84然后我建议您避免使用文本开始 - 看起来这实际上并不是所有的文本数据。看起来其中可能有一些文本,您可以对这些方面使用编码,但是当您想要固定二进制数据时,您应该将其指定为字节,而不是解码实际上不是文本的“文本” .

使用(ISO-8859-1)你可能Encoding.GetEncoding(28591)会得到你所期望的,但这仍然不是你应该做的。

于 2012-05-29T17:44:34.017 回答
1

ASCII 未定义高于值 127。

我想知道为什么您使用字符串中介将字节转换为字节。

相反,您可以执行类似的操作并完全消除此问题。

Encoding.ASCII.GetBytes("WA")
.Concat(new byte[] { 1, 2, 3, 4, 5 })
.Concat(Encoding.ASCII.GetBytes("iPhone-2.6.7-5222"))
.Concat(new byte[] { 6, 7, 8, 9, 10 })
.ToArray()
于 2012-05-29T17:45:11.663 回答