c# - C# 与 C++/CLI 中的 Unicode 字符串文字

标签 c# unicode c++-cli unicode-literals

C#:
char z = '\u201D';
int i = (int)z;

C++/CLI:
wchar_t z = '\u201D';
int i = (int)z;

在 C# 中,“i”如我所料变为 8221 ($201D)。另一方面,在 C++/CLI 中,它变为 65428 ($FF94)。哪位好心人能给我解释一下吗?

编辑:wchar_t 的大小在这里不是问题,因为:

C++/CLI:
wchar_t z = (wchar_t)8221;
int i = (int)z;

在这里,i 也变成了 8221,所以 wchar_t 确实可以在我的系统上保存一个 16 位整数。 Ekeforshus

最佳答案

你想要:

wchar_t z = L'\x201D';

来自 here .\u 未定义。

关于c# - C# 与 C++/CLI 中的 Unicode 字符串文字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1826426/

相关文章:

.net - 将普通 char* 转换为 cli 数组

c# - 是否可以为 List<double> 预分配内存?

C# HttpClient 文件流内容边界头错误

C# 从整数反序列化枚举

c# - ??或 .GetValueOrDefault()

python - getch() 返回错误字符

java - 如何获取 Unicode 字符的代码?

c - btowc(c) 是否总是返回 ( c in 0..127 ? c : WEOF )?

database - 在 C++ 中操作数据库

.net - 寻找比 GDI 更快的渲染动态数据图的解决方案