【VS输出UTF8】 C++ 控制台程序中输出UTF8字符乱码问题解决方法
1. 使用代码纠正
[code] // 控制台显示乱码纠正 system("chcp 65001"); //设置字符集 (使用SetConsoleCP(65001)设置无效,原因未知) CONSOLE_FONT_INFOEX info = { 0 }; // 以下设置字体 info.cbSize = sizeof(info); info.dwFontSize.Y = 16; // leave X as zero info.FontWeight = FW_NORMAL; wcscpy(info.FaceName, L"Consolas"); SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, &info);
2. 不使用代码
手动启动一个控制台程序,启动之后设置编码为utf8
命令:chcp 65001
然后,设置字体为Consolas
代码例子:
[code]#include <stdio.h> #include <stdlib.h> #include <wchar.h> #ifdef _WIN32 #include <Windows.h> #endif /** 为保证控制台程序输出中文不乱码: 1、xxx.c xxx.cpp使用utf-8编码,来支持linux和window的中文。 2、window cmd需要进行下面设置 */ int main(void) { #ifdef _WIN32 //http://m.blog.csdn.net/article/details?id=52789570 //控制台显示乱码纠正 // system("chcp 65001"); //设置字符集(使用SetConsoleCP(65001)设置无效,原因未知) SetConsoleOutputCP (65001); CONSOLE_FONT_INFOEX info = { 0 }; // 以下设置字体来支持中文显示。 info.cbSize = sizeof(info); info.dwFontSize.Y = 16; // leave X as zero info.FontWeight = FW_NORMAL; wcscpy(info.FaceName, L"Consolas"); SetCurrentConsoleFontEx(GetStdHandle(STD_OUTPUT_HANDLE), NULL, &info); #endif printf("Hello World!\n"); printf("测试中文!\n"); printf("我是中文!\n"); printf("Hello World!\n"); getchar(); return 0; }
其他设置:
控制台上方的白色区域右键选择默认值,然后选择选项,设置简体中文。
Visual Studio 2015 debug 显示 utf-8 汉字
这两天调试程序,内容是utf8编码的,visual studio 默认显示ansi的,所以中文全乱码了,上网上只找到vs2013及之前版本的解决办法。
于是,自己对比vs2013的解决办法,让vs2015也显示了utf-8字符。
具体在,
[code]C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Packages\Debugger\Visualizers\stl.natvis
将文件583-586行改为
<DisplayString Condition="_Mypair._Myval2._Myres < _Mypair._Myval2._BUF_SIZE">{_Mypair._Myval2._Bx._Buf,s8}</DisplayString> <DisplayString Condition="_Mypair._Myval2._Myres >= _Mypair._Myval2._BUF_SIZE">{_Mypair._Myval2._Bx._Ptr,s8}</DisplayString> <StringView Condition="_Mypair._Myval2._Myres < _Mypair._Myval2._BUF_SIZE">_Mypair._Myval2._Bx._Buf,s8</StringView> <StringView Condition="_Mypair._Myval2._Myres >= _Mypair._Myval2._BUF_SIZE">_Mypair._Myval2._Bx._Ptr,s8</StringView>
https://www.geek-share.com/detail/2705901702.html
- C++ 控制台程序中输出UTF8字符乱码问题解决方法
- C++ 控制台程序中输出UTF8字符乱码问题解决方法
- IntelliJ IDEA 控制台输出中文乱码问题的解决方法
- Windows 控制台(console)输出宽字符(解决中文输出乱码问题)
- 解决windows输入参数控制台程序输出参数是总是第一个字符问题
- jenkins控制台输出中文乱码问题解决方法
- VS2017控制台程序显示中文为乱码的问题解决办法
- codeblocks 控制台程序输出乱码问题解决
- VS和Qt之解决在控制台下输出中文乱码问题
- VS2010运行正常的控制台程序在VS2015中出现乱码的解决方法
- IntelliJ IDEA控制台输出中文乱码问题解决方法
- 程序输出urf-8编码的xml文件中文(汉字)乱码问题解决方法
- Netbeans开发C程序,控制台输出中文乱码的解决方法
- mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法
- web服务器程序运行出现乱码问题的解决方法
- Visual Studio控制台程序输出窗口一闪而过的解决方法
- 在使用DelphiXE3和SQLite3进行程序开发时,解决最后一个字符乱码的问题
- Java笔记5:解决MyEclipse控制台输入中文乱码输出问题(Eclipse也可以用)
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]
- MySQL字符集中文乱码终极解决方案和mysql查询中文问题解决方法[转贴]