在控制台C ++中打印韩文

时间:2014-07-26 05:37:26

标签: c++

我在打印韩文方面遇到了麻烦。 我尝试了各种方法但没有用。 我试过了

1

    cout << "한글" << endl;

2。

    wcout << "한글" << endl;

3。

    wprintf(L"한글\n");

4。

    setlocale(LC_ALL, "korean");
    wprintf("한글");

等等。但所有这些都打印出“한ꀔ。 我正在使用MinGW编译器,我的操作系统是Windows 7.

P.S奇怪的是,Java打印出韩国版,

    String kor = "한글";
    System.out.println(kor);

的工作原理。

2 个答案:

答案 0 :(得分:1)

在打印文本

之前将控制台代码页设置为utf-8
::SetConsoleOutputCP(65001)

答案 1 :(得分:0)

由于您使用的是Windows 7,因此可以使用WriteConsoleW,它是Windows API的一部分。 #include <windows.h>并尝试以下代码:

DWORD numCharsToWrite = str.length();
LPDWORD numCharsWritten = NULL;
WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), str.c_str(), numCharsToWrite, numCharsWritten, NULL);

其中str是std :: wstring

有关WriteConsoleW的更多信息:https://msdn.microsoft.com/en-us/library/windows/desktop/ms687401%28v=vs.85%29.aspx

在尝试了其他方法后,这对我有用。