允许用户在TextBox中输入转义字符

我有一个Windows.Forms.TextBox,我想让用户输入转义序列,然后解释为它们代表的字符。

例如,如果输入以下内容:

Hello\r\nWorld 

我希望它存储为字符数组:

  H ello \r \n W orld 0x48, 0x65, 0x6C, 0x6C, 0x6F, 0x0D, 0x0A, 0x57, 0x6F, 0x72, 0x6C, 0x64 

到目前为止,我使用以下方法处理’\ r’和’\ n’,但我也希望能够处理任何其他转义序列,如\u001A (ctrl + z)或\u001B (退出)

 string str = txtBox.Text.Replace("\\r","\r").Replace("\\n","\n"); 

……必须有一种更通用的方式来处理这个……

您可以尝试使用System.Text.RegularExpressions.Regex.Unescape静态方法:

 string str = Regex.Unescape(txtBox.Text); 

但不幸的是它主要适用于正则表达式控制字符。