【发布时间】:2014-06-12 19:03:20
【问题描述】:
有些 Unicode 代码超过一个字节,Visual Studio 可以处理这些字符吗?怎么样?
http://www.unicode.org 以下为 CJK 版本。现在一个字符可能超过一个字节。
- 中日韩统一表意文字扩展 B(U+20000 到 U+2A6D6)
- 中日韩统一表意文字扩展 C(U+2A700 到 U+2B734)
- 中日韩统一表意文字扩展 D(U+2B740 到 U+2B81D)
- CJK 兼容表意文字补充(U+2F800 到 U+2FA1D)
以下语句在 Visual Studio 2012 上对我来说失败:
char ch = '\u2A6D6';
我还没有尝试过 Visual Studio 2013 / Visual Studio 2015。
【问题讨论】:
-
它们被处理为两个字符,一个低代理和一个高代理,形成一个surrogate pair。
-
见JavaScript has a Unicode problem。 C# 的解释完全相同。
-
Visual Studio 是如何失败的?
-
@LasseV.Karlsen 这里的“失败”是指 Visual Studio 无法识别 C# 语句 - 语法错误。
-
所以你的意思是 C# 编译器。
标签: c# visual-studio-2010 visual-studio visual-studio-2012 unicode