在C#对C ++ / CLI Unicode字符串
-
22-07-2019 - |
题
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
的宽度是编译器特定的,并且可以是作为8位,因此,需要被跨越任何C或C ++编译器的便携式不应使用wchar_t的用于存储Unicode文本程序的小。将wchar_t类型是用于存储编译器定义的宽字符,这可能是在一些编译器Unicode字符“。
您不应该做出它是如何实现的任何假设。
不隶属于 StackOverflow