我正在使用 Dev C++,Windows 7。
我正在尝试使用以下方法打印出非 ascii 字符:
char a='\uwxyz';
例如:
#include <locale.h>
#include <iostream>
#include <cstdlib>
#include <windows.h>
#include <conio.h>
#include <stdio.h>
using namespace std;
int main()
{
setlocale(LC_ALL,"en_US.UTF-8");
char a='\u0041'; //Should display 'A'
cout<<a<<endl;
a='\u2639'; //Should display '☹'
cout<<a<<endl;
system("PAUSE");
}
在本例中,大写字母 A 正确显示。使用 wxDev,☹ 字符不会显示任何内容。使用 Dev(我需要将其用于最终程序),我会得到一个扩展的 ascii 字符(它是一个类似于 ∥ 的符号,但有多个符号看起来像这样,我不知道它是哪个)。
在 Dev 和 wxDev 中,☹ 显示为 ?。
在对如何正确显示 unicode 字符进行了一些初步搜索后,我添加了 setlocale,但我还没有找到任何解决此问题的方法。
我不能使用不同的编译器或修改系统设置来完成这项工作。(是的,这是一个学校项目。不,该项目不需要特殊字符;我只是想让它看起来更好。)如果不修改这些设置就无法工作,那也是有用的信息。
预先感谢您的任何帮助。
编辑:使用 Dev,而不是 wxDev,
char a='\u0041'; //should be A
cout<<a;
我收到一个错误:\u0041 不是有效的通用字符
如果我使用 wchar_t 作为数据类型:
wchar_t a = '\u2639';
cout<<a<<endl;
输出为 39097。