【发布时间】:2021-09-26 21:14:24
【问题描述】:
当检查包含 ASCII 代码的字符串时,例如ABC\x30XYZ,我怎样才能把它读成那个完整的字符串,而不是把它读成字符串ABC0XYZ?
例如:
var value = "ABC\x30XYZ";
foreach(var c in value)
{
Console.Write(c);
}
// Desired output: ABC\x30XYZ
// Actual output: ABC0XYZ
我猜我需要对 Encoding 做一些事情,但我正在努力寻找解决方案。我觉得我错过了一些非常明显的东西,当有人指出这一点时,我准备羞愧地低下头。
【问题讨论】:
-
这只是您在 C# 中将其作为文字键入的方式,因为转义,实际的二进制表示包含单个 Unicode 代码点。比如你也可以做其他字符
"\x41"和"A"完全一样 -
所以在我上面的例子中,子字符串
\x30在运行时是否真的不存在,不管使用一些特定的编码等吗? -
正确,这就是你写文字的方式。在你的情况下
\x30只是0