VisualC++2012 Compiler Warning C4566

现象:

今天写程序突然遇到这样一个警告:

warning C4566: ユニバーサル文字名 ‘\u0642‘ によって表示されている文字は、現在のコード ページ (932) で表示できません

意思是说,Unicode字符‘\u0642‘不能在现在的codepage(932)中 表示。(codepage(932)表示日文编码JIS)

结论:

查了一下微软官方的描述,并不是每一个Unicode字符都能在你当前的ANSI code page中表示,存在有一部分字符肯定表示不了。单字符是可以转成宽字符,反之则不行。

示例:

下面示例中c1,c2编译时都会出C4566,我们应该以宽字符去存储Unicode字符

// Warning_C4566.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//

#include "stdafx.h"
#include <stdio.h>

int _tmain(int argc, _TCHAR* argv[])
{
   //Unicode字符以当前ANSI(CodePage932)存入
   char c1 = '\u521B';   // C4566
   char c2 = '\u0642';   // C4566
   char c3 = '\u03a0';   // NO C4566

   //Unicode字符以宽自己存入
   wchar_t c4 = L'\u521B';   // OK
   wchar_t c5 = L'\u0642';   // OK
   wchar_t c6 = L'\u03a0';   // OK

   return 0;
}
时间: 2024-10-19 21:02:13

VisualC++2012 Compiler Warning C4566的相关文章

问题解决——warning C4503 超出修饰名的长度,名称被截断

========================声明============================ 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本声明). 本文不定期修改完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://blog.csdn.net/wlsgzl/article/details/42236503 ======================================================= 领导要实现"以后支持各种检测项目&q

语言独立性和与语言无关的组件

语言独立性和与语言无关的组件 .NET Framework 4.5 .NET Framework 是独立于语言的. 这意味着,作为开发人员,您可以使用面向 .NET Framework 的多种语言(例如,C#.C++/CLI.Eiffel.F#.IronPython.IronRuby.PowerBuilder.Visual Basic.Visual COBOL 以及 Windows PowerShell)之一进行开发. 您可以访问针对 .NET Framework 开发的类库的类型和成员,而不必

System.Windows.Forms

1 File: winforms\Managed\System\WinForms\DataGridView.cs 2 Project: ndp\fx\src\System.Windows.Forms.csproj (System.Windows.Forms) 3 4 //------------------------------------------------------------------------------ 5 // <copyright file="DataGridVi

再探MFC(八)使用数据库

ADO包装类 A set of ADO classes - version 2.20 源文档 <http://www.codeproject.com/KB/database/caaadoclass1.aspx> 使用介绍 CADODatabase包装_ConnectionPtr,管理数据库连接. 连接数据库例子 //Sample withConnection string for SQL Server CADODatabase* pAdoDb= new CADODatabase(); CStr

【ucosii】笔记1:移植

前言 ucosii的代码,可以分为两部分:与cpu无关的代码,与cpu有关.移植的主要工作就是修改与cpu有关的部分代码. ucosii的代码结构 与cpu无关的代码              与cpu无关的代码 os_config.h 操作系统配置文件 os_cpu.h 处理器相关头文件 ucos_ii.h 操作系统头文件 os_cpu.c 处理器相关c文件 os_core.c 内核 os_cpu_a.asm 处理器相关汇编文件 os_task.c 任务管理     os_time.c 时间管

Win7 64位 php-5.5.13+Apache 2.4.9+mysql-5.6.19 配置

注明:此文转载至 http://www.cnblogs.com/isyouth/p/3778045.html 一 :准备阶段 1:php php-5.5.13下载链接:http://windows.php.net/downloads/releases/php-5.5.13-Win32-VC11-x64.zip 推荐 Thread Safe(线程安全) V11 x64,也就是64bit的. 现在PHP官网上下载PHP安装包都有VC11或VC9的字样,这是什么含义,我们应该下载哪种安装包更好呢? 其

C++ Core Guidelines

C++ Core Guidelines September 9, 2015 Editors: Bjarne Stroustrup Herb Sutter This document is a very early draft. It is inkorrekt, incompleat, and pµøoorly formatted. Had it been an open source (code) project, this would have been release 0.6. Copy

跨平台的CStdString类,实现了CString的接口

在实际工作中,std的string功能相对于MFC的CString来说,实在是相形见绌. CStdString类实现了CString的功能,支持跨平台. 1 // ============================================================================= 2 // FILE: StdString.h 3 // AUTHOR: Joe O'Leary (with outside help noted in comments) 4 //

Oracle 11g Articles

发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Database 11g: New Features For Administrators OCP Exam Articles Oracle Database 11g Release 1: Miscellaneous Articles Oracle Database 11g Release 2: Misc