有没有人知道如何在visual c ++中使用日文字符?
我尝试使用visual c ++在控制台中显示日语名称。
#include "stdafx.h"
#include <string>
#include <iostream>
using namespace std;
int main()
{
cout << "北島 美奈" << endl;
return 0;
}
控制台中的输出:
?? ??
Press any key to continue ...
希望有人可以提供帮助。谢谢。
答案 0 :(得分:0)
我使用cmd.exe在控制台窗口上使用自己的代码UTF-8和EUC-KR(韩语)进行了测试。
这是我的源代码。
#include <string>
#include <iostream>
#include <windows.h>
int main()
{
int codepage = CP_ACP; //CP_ACP, CP_OEMCP
int conv_codepage = CP_UTF8; //CP_UTF8
char str[256];
char str1[256];
wchar_t tstr[256], tstr2[256];
memset(str, 0x00, 256);
memset(str1, 0x00, 256);
memset(tstr, 0x00, 256);
memset(tstr2, 0x00, 256);
memcpy(str, " 北島 美奈", sizeof(str));
int nLen = MultiByteToWideChar(codepage, 0, str, -1, 0, 0);
MultiByteToWideChar(codepage, 0, str, -1, tstr, nLen);
int len = WideCharToMultiByte( conv_codepage, 0, tstr, -1, NULL, 0, 0, 0 );
WideCharToMultiByte(conv_codepage, 0, tstr, -1, str1, len ,0 ,0);
cout << "2... " << str1 << endl;
return 0;
}
案例1 UTF-8:控制台上的结果 输出是合理的,因为str1变量是utf-8字符串。 我在utf-8控制台窗口上有一个正确的utf-8。
案例2 EUC-KR:控制台上的结果 我认为这种情况也是可以接受的utf-8字符串,带有utf-8字符串。
然后按如下方式更改代码
cout << "2... " << str << endl;
到
cout << "2... " << str1 << endl;
案例1 UTF-8:控制台上的结果 我认为这对我来说是一个utf-8控制台上的unicode字符串。
案例1 EUC-KR:控制台上的结果
在euc-kr代码页中,它仍然是正确的unicode字符串。