【发布时间】:2014-02-28 10:36:40
【问题描述】:
我使用控制台程序(cmd 调用)将标准输入中的字符串转换为从标准输出接收到的特殊 Unicode 字符字符串。 C# 中的返回字符串转义了 Unicode 字符之前的转义反斜杠。
如何撤消这种转义?
示例返回字符串 =
stdout = "\\x284b\\x2817\\x2801\\x281d\\x2835 \\x281a\\x2801\\x281b\\x281e \\x280a\\x280d \\x2805\\x2815\\x280d\\x280f\\x2807\\x2811\\x281e\\x281e \\x2827\\x2811\\x2817\\x283a\\x2801\\x2813\\x2817\\x2807\\x2815\\x280e\\x281e\\x2811\\x281d \\x285e\\x2801\\x282d"
...但它应该是
stdout = "\x284b\x2817\x2801\x281d\x2835 \x281a\x2801\x281b\x281e \x280a\x280d \x2805\x2815\x280d\x280f\x2807\x2811\x281e\x281e \x2827\x2811\x2817\x283a\x2801\x2813\x2817\x2807\x2815\x280e\x281e\x2811\x281d \x285e\x2801\x282d"
我试图通过这样做来解决这个问题
var stdout2 = stdout.Replace(@"\\", @"\");
没有效果。
感谢 4 位帮助。
【问题讨论】:
-
您如何查看字符串?你在调试器中暂停了吗?
-
它没有任何效果,因为这些双反斜杠实际上并不存在。调试器试图提供太多帮助,以您在 C# 代码中编写的方式向您显示字符串。使用文本可视化器查看字符串 really 的样子。点击望远镜图标。
-
于是我用调试器查看了这个结果。但调试输出:
System.Diagnostics.Debug.WriteLine(stdout);结果为:\x284b\x2817\x2801\x281d\x2835 ... 但它应该显示盲文字符,如 ⡋⠗⠁⠝⠵ ⠚⠁⠛⠞ ⠊⠍ ⠅⠕ ⠍⠏⠇⠑⠞⠞ ⠧⠑⠗⠺⠁⠓⠗⠇⠕⠎⠞⠑⠝ ⡞⠁⠭ -
你得到答案了吗?
-
这个
\xNNNN字符串是从哪里来的?我不知道任何使用反斜杠-x 来表示 UTF-16 代码单元的字符串转义格式。许多格式(JSON、C# 源代码等)使用反斜杠-u。
标签: c# string unicode char wchar