在C#中对C ++ / CLI Unicode字符串 [英] Unicode string literals in C# vs C++/CLI

查看:187
本文介绍了在C#中对C ++ / CLI Unicode字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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 $)。 ?某种灵魂可以解释这个给我

In C# "i" becomes, just as I expect, 8221 ($201D). In C++/CLI on the other hand, it becomes 65428 ($FF94). Can some kind soul explain this to me?

修改 wchar_t的的大小可以没有问题,在这里,因为:

EDIT: Size of wchar_t can not be of issue here, because:

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



太在这里, I 变为8221,所以 wchar_t的的确是多达我的系统上拿着16位整数的游戏。 Ekeforshus

Here too, i becomes 8221, so wchar_t is indeed up to the game of holding a 16-bit integer on my system. Ekeforshus

推荐答案

你想要的:

wchar_t z = L'\x201D';



从的此处。 \u是不确定的。

from here. \u is undefined.

这篇关于在C#中对C ++ / CLI Unicode字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆