【问题标题】:Using supplemental Unicode characters as char literals in C#在 C# 中使用补充 Unicode 字符作为 char 文字
【发布时间】: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 我不会对源代码文件这样做,因为这可能会导致对其他文本文件做出相同的假设——而这是行不通的。

标签: c# unicode


【解决方案1】:

不,char 是一个 UTF-16 代码单元。 String 是 UTF-16 代码单元序列,因此如果您有一个 UTF-16 编码为两个代码单元的代码点,请使用 String 文字。

"?"

【讨论】:

猜你喜欢
  • 2011-12-25
  • 2022-01-10
  • 2012-08-10
  • 1970-01-01
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
相关资源
最近更新 更多