以十六进制表示形式打印字符串或将控制字符打印为文字

时间:2013-05-02 07:29:51

标签: c#

我有一个使用剪贴板的应用程序。用户从excel复制数据并将其粘贴到我的应用程序中。

但是,有时我的应用程序无法正确处理数据(在生产中)。但我无法重现这个问题。因为电子表格用户正在使用包含他自己的宏而且我不允许使用他的原始电子表格,所以我想添加代码将剪贴板中的文本完全转储到日志文件中,以便我可以看到是否粘贴了数据格式正确。

我特别关注剪贴板中包含的控制字符。因此我想将字符串转储为文字。例如,如果剪贴板中的字符串包含'\t',我想在日志文件中看到"\t",而不是标签。有没有办法做到这一点?

或者我可以以十六进制格式记录文本。但似乎我需要先将string转换为char[]并使用System.Buffer.BlockCopychar[]复制到byte[]。然后使用BitConverter.ToString()打印byte []。它工作正常。但有没有更好的方法(更容易,不需要复制,不需要遍历每个角色)来做到这一点? .Net没有内置函数吗?

我用它作为参考:byte[] to hex string

方法表明看起来有点“沉重”。

1 个答案:

答案 0 :(得分:1)

简单试试这个

"some text \t some text".Replace("\t",@"\t");