【发布时间】:2017-07-08 06:11:52
【问题描述】:
有没有办法在 C# 中使用补充 Unicode 字符(例如 '????')作为字符文字?我在 VS 2017 中尝试过,源文件保存为带有 BOM、UTF-16 LE 和 BE 的 UTF-8,但我总是收到错误 Too many characters in character literal。
【问题讨论】:
-
char类型实际上是单个 utf-16 代码点。如果字符不是单个 utf-16 代码点,则不是。 -
FWIW 可以将其表示为字符串,
"\uD83C\uDCDC"。 -
@mikez 注意:没有必要使用 \u 符号。
-
@TomBlodget:这不是必要的,但这确实意味着如果您的所有源代码都是 ASCII,您就不必担心编码问题。
-
@JonSkeet 我不会对源代码文件这样做,因为这可能会导致对其他文本文件做出相同的假设——而这是行不通的。