我使用開發的C++,窗口7字符使用「爲 uXXXX」格式顯示錯誤的字符
我試圖使用打印出非ASCII字符定義:
#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,simply字符不會顯示任何內容。使用Dev(我需要用於最終的程序),我會得到一個擴展的ascii字符(這是一個與∥類似的符號,但有多個符號,看起來像這樣,我不知道它是哪一個)。
在Dev和wxDev中,☹都顯示爲?。
我在一些關於如何正確顯示unicode字符的初步搜索之後添加了setlocale,但我還沒有找到任何解決方案。
我不能使用不同的編譯器或修改系統設置來使其工作。 (是的,這是一個學校項目,不是,項目不需要特殊字符;我只是想讓它看起來更好)。如果修改這些設置無法正常工作,那也是非常有用的信息。
非常感謝您的幫助。
編輯:使用開發,不wxDev,
char a='\u0041'; //should be A
cout<<a;
我得到一個錯誤:\ u0041是不是有效的普遍性
如果我使用的wchar_t作爲數據類型:
wchar_t a = '\u2639';
cout<<a<<endl;
輸出爲39097.
'所以char a ='\ u2639''是不可能做到你想要什麼,因爲'char'(定義)是一個字節,並且'\ u2639'不能放在一個字節中(至少當一個字節是八位時,因爲它幾乎總是)。對於替代品,您可以嘗試使用谷歌搜索「寬字符」或「wchar」。 – ruakh 2013-03-21 22:01:51