学习笔记:解决 warning C4566
来源:互联网 发布:sai绘图软件激活 编辑:程序博客网 时间:2024/06/18 16:06
#include "stdafx.h"#include <string>#include <iostream>using namespace std;int main() { //warning C4566: 由通用字符名称“\u00E4”表示的字符不能在当前代码页(936)中表示出来//ä的UNICODE编码是 \u00E4, 在中文环境下,编译器不能把它转为GBK. 因为GBK中没有这个字符对应的编码。//cpp源文件里,ä可以按照utf-8格式或ucs16保存,这就是问什么关闭项目,重新打开后,ä没有丢的原因。//VS20XX IDE会从文件BOM头中识别当前源文件的编码方案。对于uft-8,bom=EF BB BF//用ultra-edit打开生成的exe,用二进制模式查看。======...会很容易发现,查看应该是ä的位置,实际是? (0x3F)//调试方式下,查看buff的值,也会看到ä的位置上,内存值是0x3F( 就是一个'?')char buff[] = "=========================ä"; //增加下面这句也照样会出现warning C4566//setlocale(LC_ALL,"chs");//如果要解决C4566问题,办法是在“控制面板”->“区域与语言”->“更改系统区域设置”//ä是德文的一个字符,所以把“当前区域设置”成德国。经过设置和系统重启生效,发现buff中ä被编码为0xe4, 编译生成exe正常。//在VS20XX环境下测试一下,看能否输出正常。经测试不正常。//然后,从cmd中执行exe。先打开cmd,调用chcp命令查询当前code page,确保是德语 code page 1252//(如果console在启动后不是你希望的code page,则在这面这个注册表中,修改code page// [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe])// ( 如果不想改注册表,则每次打开cmd后,执行chcp 1252命令,转入德文环境)//然后执行 本程序XX.exe. 输出正常。//看来,从VS20XX中用调式代码的方式执行,与从cmd(shell)中启动exe,有很大差异。//这个差异的原因,还需要再研究学习。cout << buff << endl;//如果在程序中,用硬编码的方式强制更改为德文环境,输出正常。//这个办法,可以不用改注册表,也不用从cmd中执行前执行chcp 1252。setlocale(LC_ALL,"German");cout << buff << endl;system("pause");return 0;}
0 0
- 学习笔记:解决 warning C4566
- VisualC++2012 Compiler Warning C4566
- warning C4566: 由通用字符名称“\u202A”表示的字符不能在当前代码页(936)中表示出来
- 解决 warning LNK4098
- 解决gedit warning问题
- 解决 Warning C4251 问题
- 解决gedit warning问题
- warning C4290 解决方式
- 解决Warning中Wreorder
- 如何解决 warning C4482
- “ Warning: fopen( ” 错误解决 !
- Link warning:LNK4199 解决
- 解决libpng warning
- 如何解决 warning C4482
- 解决warning MSB8012:问题
- warning LNK4006 和 warning LNK4221 警告解决
- 关于VC2008 warning 的解决
- warning LNK1166问题的解决
- UVA_10570_Meeting with Aliens
- 欢迎使用CSDN-markdown编辑器
- 浅谈NVMe的多队列技术和IO调度
- 怎样打开PDF格式文件浏览和编辑
- mysql中索引的使用
- 学习笔记:解决 warning C4566
- Hive-数据分析和数据仓库
- iOS BLE 关于app连接已配对设备的问题
- c++实现人命币大小写转换
- Error creating bean with name 'enableRedisKeyspaceNotificationsInitializer'
- 函数封装成DLL
- ExtJs xtype一览
- Glide 一个专注于平滑滚动的图片加载和缓存库
- Maven - Introduction to the Build Lifecycle