C++ cli 将特殊字符设置为int,然后返回

C++ cli 将特殊字符设置为int,然后返回,c++-cli,char,int,C++ Cli,Char,Int,所以我想要的是,例如,将字母“a”转换成97(比如ASCII表中的字母),然后将67转换成“a”。 事实上,我执行了大量的数学运算,将其视为二进制数,因此转换是必要的。 然而,对于特殊角色,它并不能很好地工作 char c = 'ÿ'; int i = int(c); wchar_t wTemp = static_cast<wchar_t>(i); wchar_t* w = &wTemp; String^ newI = gcnew String(w); charc='ÿ';

所以我想要的是,例如,将字母“a”转换成97(比如ASCII表中的字母),然后将67转换成“a”。 事实上,我执行了大量的数学运算,将其视为二进制数,因此转换是必要的。 然而,对于特殊角色,它并不能很好地工作

char c = 'ÿ';
int i = int(c);
wchar_t wTemp = static_cast<wchar_t>(i);
wchar_t* w = &wTemp;
String^ newI = gcnew String(w);
charc='ÿ';
int i=int(c);
wchar_t wTemp=静态铸造(i);
wchar_t*w=&wTemp;
字符串^newI=gcnew字符串(w);
这个符号只是我在图像中发现的一个随机符号(需要读取的字符类型)。它只是作为一个完全不同的符号出现。我不知道为什么,或者怎么办?

0x7f(127)以上的字符可能正在转换为负整数值。可能将
c
更改为未签名:

unsigned char c = 'ÿ';
int i = c;

虽然我没有运行你的代码,但我觉得你的代码不太正确。以下是MSDN中一个很好的示例,说明如何从和转换为wchar\u t:


我不相信“特殊”角色有什么特别之处。

我就是这么用的。但是String()需要wchar\u t*而static\u cast只提供wchar\u t,所以我知道如何给出地址吗?啊,就是这样!我假设char与int有相同的边界,我认为这是一个糟糕的假设。谢谢戴普。源代码文件编码和Unicode之间的转换也不应被忽略。wchar_t c=L‘ÿ’确实给出了更好的几率。