C#将十六进制转换为字符串
我想我有点小问题,因为我混淆了我的术语 我需要用垂直制表符(char)11或(char)0x0b(前面)和(char)28或(char)0x1c(后面)来包装字符串 我困惑的一部分是我不明白11和0x0b之间的区别是什么。我相信一个是ascii,一个是十六进制,但我不是肯定的。所以基本上我需要这样做C#将十六进制转换为字符串,c#,string,hex,ascii,C#,String,Hex,Ascii,我想我有点小问题,因为我混淆了我的术语 我需要用垂直制表符(char)11或(char)0x0b(前面)和(char)28或(char)0x1c(后面)来包装字符串 我困惑的一部分是我不明白11和0x0b之间的区别是什么。我相信一个是ascii,一个是十六进制,但我不是肯定的。所以基本上我需要这样做 string response = (char)0x0b + "message" + (char)0x1c; 但这似乎不起作用 我困惑的一部分是我不明白11和0x0b之间的区别是什么 没有区别。这
string response = (char)0x0b + "message" + (char)0x1c;
但这似乎不起作用
我困惑的一部分是我不明白11和0x0b之间的区别是什么
没有区别。这两个数字代表相同的数学数字11,用不同的基数表示(基数16表示0x0B
,基数10表示11
)
C#为垂直选项卡提供转义序列-\v
,因此您可以编写'\v'
来代替(char)0x0b
。0x1C
没有转义序列,但是可以使用十六进制转义序列来表示它,就像\x1C
一样
修改后的代码如下所示:
string response = '\v' + message + 'x1C';
我删除了
“message”
周围的双引号,假设它表示代码在返回响应之前准备好的字符串变量。什么是“似乎不起作用”呢?它不编译吗?它不会产生您期望的输出吗?我的意思是,我正在将响应发送回服务器,但它无法将其识别为有效响应。