C#将十六进制转换为字符串

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之间的区别是什么 没有区别。这

我想我有点小问题,因为我混淆了我的术语

我需要用垂直制表符(char)11或(char)0x0b(前面)和(char)28或(char)0x1c(后面)来包装字符串

我困惑的一部分是我不明白11和0x0b之间的区别是什么。我相信一个是ascii,一个是十六进制,但我不是肯定的。所以基本上我需要这样做

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”
周围的双引号,假设它表示代码在返回响应之前准备好的字符串变量。

什么是“似乎不起作用”呢?它不编译吗?它不会产生您期望的输出吗?我的意思是,我正在将响应发送回服务器,但它无法将其识别为有效响应。