zoukankan      html  css  js  c++  java
  • c++11新特性之宽窄字符转换

      C++11增加了unicode字面量的支持,可以通过L来定义宽字符:str::wstring str = L"中国人";

      将宽字符转换为窄字符串需要用到codecvt库中的std::wstring_convert

      例:

    #include "stdio.h"
    
    #include<string>
    #include<codecvt>
    #include<iostream>
    using namespace std;
    
    void main()
    {
        wstring wstr = L"中国人";
        cout << "unicode编码:" << wstr.c_str() << endl;
    
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> converter(new codecvt<wchar_t, char, mbstate_t>("CHS"));
    
        string str = converter.to_bytes(wstr);
        cout << "ansi编码:" << str << "  " << str.c_str() << endl;
    
        wstring wstr1 = converter.from_bytes(str);
        wcout.imbue(locale("CHS"));  // 初始化cout为中文输出
        wcout << L"unicode编码:" << wstr1 << endl;
    }

  • 相关阅读:
    SQL Challenges靶机
    XSS靶机1
    djinn靶机
    Sunset靶机
    统计学 一 集中趋势
    测试
    测试
    统计学 一 集中趋势
    算法分析
    代码测试
  • 原文地址:https://www.cnblogs.com/xiaobingqianrui/p/9050896.html
Copyright © 2011-2022 走看看