zoukankan      html  css  js  c++  java
  • 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; }



    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    图标库
    AndroidManifest中注册application
    两个App之间的跳转 并传值
    Fresco加载显示gif图片
    弹出PopupWindow背景变暗的实现
    判断网络是否可用
    Java的安全性和可移植性
    DBUtils
    Observer
    IO
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4814068.html
Copyright © 2011-2022 走看看