【发布时间】:2019-12-07 23:57:02
【问题描述】:
我定义了一个字符串public const string Numeric0 = "\u0030";。 C# 将其解释为 Unicode 字符,这对我的应用程序的一部分很有用,但我也想以其原始 "\u0030" 格式输出字符串。我在这里尝试了来自 SO 的大多数相关答案,但并没有真正取得任何进展。想法?
预期的 c# 输入:
public const string Numeric0 = "\u0030";
var str = SomeOperation(Numeric0);
预期输出:
str == @"\u0030"
【问题讨论】:
-
您希望字符串字面上包含
"\u0030"? -
您能告诉我们您尝试了什么以及结果如何吗?预计
$@"\u{(int) ch:x4}"可以工作(对于char ch)。请注意,如果您需要处理代理对(格式为\Uxxxxxxxx),这会有点棘手。 -
是的,字面意思是“\u0030”
-
所以...
"\\u0030"或@"\u0030"?或者,如果您希望字符串包含 unicode 字符 0030,但仍想将其打印为\u0030,请参阅 @JonSkeet 的评论 -
$@"\u{(int)Numeric0[0]:x4}"-- 不需要ToCharArray()。另外,为什么不将您的 const 声明为char,而不是string,如果它只包含一个字符?