zoukankan      html  css  js  c++  java
  • vs_u8前缀

    1、ZC: 个人测试下来,VS2015开始 支持 u8前缀。

    2、What's New for Visual C++ in Visual Studio 2015  https://msdn.microsoft.com/zh-cn/library/hh409293.aspx

    新字符类型和 Unicode 文本 现在支持 UTF-8、UTF-16 和 UTF-32 中的字符文本和字符串,并引入了新字符类型 char16_t 和 char32_t。 字符文本可以具有前缀 u8 (UTF-8)、u (UTF-16) 或 U (UTF-32)(如 U'a),而字符串还可以使用原始字符串等效项 u8R(UTF-8 原始字符串)、uR(UTF-16 原始字符串)或 UR(UTF-32 原始字符串)作为前缀。 通用字符名可以在 unicode 文本中随意使用(如 u'u00EF'、u8"u00EF is i" 和 u"U000000ef is I")。 (C++11)

    3、测试

      3.1、vs2015x86 Enterprise Update1  (Thinkpad E40 用vs2015,确实比较卡了...)

    #include "stdafx.h"
    #include <windows.h>
    #include <string>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        //char* pc = u8"AA";
        //u8"";
        char* pc = "退出";
        printf("%s
    ", pc);
        char *p = pc;
        while (p[0] != 0)
        {
            printf("%02X ", ((int)p[0])&0xFF);
            p ++;
        }
        printf("
    
    ");
    
        std::string str = u8"退出";
        printf("%s
    ", str.c_str());
        for (int i = 0; i < str.length(); i++)
        {
            char cc = str.at(i);
            printf("%02X ", ((int)cc) & 0xFF);
        }
        printf("
    ");
        cout << str << endl;
    
        ::MessageBoxA(0, pc, str.c_str(), 0);
        system("pause");
        return 0;
    }

        3.1.1、运行结果输出

        3.1.2、疑问:虽然 编码是对的(参看下面的java代码),但是为何显示是乱码??(printf 和 cout 的问题??)

      3.2、java测试代码:

    package str;
    
    public class TstrTest
    {
        public static void main(String[] args) throws Exception
        {
            String str = "退出";
            
            byte[] bytesGBK = str.getBytes("gbk");
            for (int i=0; i<bytesGBK.length; i++)
                System.out.print(String.format("%02X ", bytesGBK[i]));
            System.out.println();
            
            byte[] bytesUTF8 = str.getBytes("utf-8");
            for (int i=0; i<bytesUTF8.length; i++)
                System.out.print(String.format("%02X ", bytesUTF8[i]));
        }
    }

        3.2.1、运行输出:

    4、

    5、

  • 相关阅读:
    在CI框架中的配置整合amfphp
    php操作memcache的使用【转】
    notepad++ 快捷键大全
    utf8_general_ci和utf8_unicode_ci的比较
    50个必备的实用jQuery代码段
    强制浏览器下载PDF文件
    Ajax不能接受php return值的原因
    Proftpd mysql认证配置文档
    CI公用模型
    sublime 相关配置和快捷键
  • 原文地址:https://www.cnblogs.com/cppskill/p/6068397.html
Copyright © 2011-2022 走看看