原文出处:http://blog.csdn.net/dreamtdp/article/details/8025514
问题描述:
cout << "中文字符" ; 在控制台输出时出现乱码。
解决办法:
重新点出菜单,选“默认值”项,发现“默认值”里的“当前代码页”是可以设置,
有两个选项:“437 (OEM - 美国)”和“936 (ANSI/OEM - 简体中文 GBK)”,将“当前代码页”设置为“936 (ANSI/OEM - 简体中文 GBK)”,点“确定”,没有发现一点反应。
重运行一下“CMD.EXE”,发现问题依旧,“默认值”中“当前代码页”设置是“936 (ANSI/OEM - 简体中文 GBK)”,可是“属性”中“当前代码页”的设置还是“437 (OEM - 美国)”,输不了中文也显示不了中文。
所以问题在注册表。
win+R打开运行,输入regedit打开注册表编辑器。
找到[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe] 修改 "CodePage"=dword:000003a8
【注】十六进制"000003a8"或十进制"936",表示“936 (ANSI/OEM - 简体中文 GBK)”。
十六进制"000001b5"或十进制"437",表示“437 (OEM - 美国)”。