2016-11-26 57 views
0

我試圖打印出"Text här",並打印出"Text hôr""ö"變成"+""å"變成"Ô"Visual Studio不打印正確的北歐字符

這是整個代碼。

#include <iostream> 

int main() 
{ 
std::cout << "Text här"; 
return 0; 
} 

我使用visual studio 2015.有什麼可能導致這種情況,我將如何解決它?

+5

也許你可以在這裏找到答案:https://stackoverflow.com/questions/1371012/how-do-i-print-utf- 8-from-c-console-application-on-windows –

+0

到目前爲止,Windows上控制檯的默認配置仍然基於1982年的明智選擇。很難解決,太多關鍵業務應用都假定它仍然是1982年。請告訴你的文本編輯器。在VS中,通過保存按鈕>代碼頁437上的文件>另存爲>箭頭執行此操作。 –

+0

標題實際上應該是'我的程序不打印正確的北歐字符' – stijn

回答

2

這只是可執行文件中使用的字符編碼與控制檯窗口中使用的字符編碼之間的不匹配。

您可以通過chcp命令更改控制檯窗口的字符編碼。

您可以手動或例如在你的程序:

system("chcp 1252 >nul"); 

爲了避免大部分的編碼問題和一般處理國際字符,可以使用Unicode的I/O。

但是,C++標準庫的支持接近不存在,這意味着使用特定於平臺的功能,其次,控制檯窗口基本上侷限於Unicode的基本多語言平面,對應於原始的16位Unicode ,因爲最初的API設計。

在實踐中,這些問題和其他問題意味着初學者的探索性代碼和專業便攜式代碼之間存在差異。


您可能會發現以下有用的:(How can I make Unicode iostream i/o work in both Windows and Unix-land?