编译时报错:warning C4566: 由通用字符名称“\U00010A6F”表示的字符不能在当前代码页(936)中表示出来
错误语句是: cout << '𐩯' <<endl;
解决方法是 : 在unicode字符前加U就行了。
cout << U'𐩯' <<endl;
原理是字符前加U后把字符𐩯的编码由默认的GB2312码改为unicode码了。
如果是双字节字符,也可以在字符前加L来处理,如:
wcout << L'Þ' << endl;
如果unicode字符在字符串中,我们在字符串前加u8把字符串编码转为UTF-8就解决上述问题。如:
cout<< u8"The official vowels in Danish are: a, e, i, o, u, \u0430, \u00E6, \u00F8, \u00E5 and y.\n";