2012-09-19 81 views
1

我是新來的C++,我試圖寫一個非常簡單的代碼,但結果是錯誤的,我不知道如何解決它。C++字符串UTF-8編碼

的代碼是:

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 
    string test_string = "aáeéöôőüűč♥♦♣♠"; 
    cout << test_string << endl; 
    return 0; 
} 

但結果是:a├íe├ę├Â├┤┼Ĺ├╝┼▒─ŹÔÖąÔÖŽÔÖúÔÖá

我在Windows上,使用代碼::塊。

+1

結果是沒有那麼多的「錯誤」,因爲它是「意外」。你需要擴大你對環境的期望和理解。 –

+0

適合我。您使用什麼操作系統?編譯器?源文件編碼? – Fanael

+0

代碼:blocks,windows7 – eqiproo

回答

0

文件另​​存爲UTF-8無BOM簽名,並嘗試用printf()。

//Save As UTF8 without BOM signature 
#include <stdio.h> 
#include <windows.h> 

int main() { 
    SetConsoleOutputCP(65001); 
    char test_string[] = "aáeéöôőüűč♥♦♣♠"; 
    printf(test_string); 
    return 0; 
} 

,其結果是:aáeéöôőüűč♥♦♣♠