Unicode码转换为中文
请各位大人们看仔细咯!
我希望在纯C++的环境下将Unicode码重新转换为字符,众所周知,在C++里用wchar_t类型的变量是可以直接输出某一个中文字符在Unicode中的十进制码的,但是现在我希望将这个十进制码重新翻译回中文,使用了很多种方法都没有效果,所以只好来这里请各位大人们帮忙出个主意,不使用WindowsAPI或是其他MFC什么的,有没有办法实现的?
我尝试着用这样一个表达式赋值:
wchar_t code = '\u4e0d';
在没有被单引号括起来的情况下,Vs2010能够识别出这个Unicode码,但是会提示未定义标识符。。。(必然结果),但是如果括起来了。。。这货的值就成了无敌的45755。。。。。Help~!!!!!
[解决办法]
wchar_t code = L'\u4e0d';
你这个是一个字符,不是字符串,它的值就是无敌的45755,45755要通过MessageBoxW这样的东西找到对应的字体显示,但是MessageBoxW接收的是以0结尾的字符串,所以要wchar_t code[] = L"\u4e0d";
'\u4e0d'是multicharacter literal,int类型,L'\u4e0d'才是wchar_t类型
[解决办法]
std::wcout.imbue( std::locale("") ); wchar_t s = 0x4e0d; std::wcout << (int)s << std::endl << s << std::endl;