zoukankan      html  css  js  c++  java
  • C++11函数转码

    #include <string>
    #include <codecvt>
    
    using namespace std;
    
    // utf8转unicode
    wstring utf8_to_wstring(const string &str)
    {
        wstring_convert<codecvt_utf8<wchar_t>> utf8_cvt;
        return utf8_cvt.from_bytes(str);
    }
    
    // unicode转utf8
    string wstring_to_utf8(const wstring &str)
    {
        wstring_convert<codecvt_utf8<wchar_t>> utf8_cvt;
        return utf8_cvt.to_bytes(str);
    }
    
    // gbk转unicode
    wstring  gbk_to_wstring(const string &str)
    {
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> gbk_cvt(new codecvt<wchar_t, char, mbstate_t>("chs"));
        return gbk_cvt.from_bytes(str);
    }
    
    // unicode转gbk
    string  wstring_to_gbk(const wstring &str)
    {
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> gbk_cvt(new codecvt<wchar_t, char, mbstate_t>("chs"));
        return gbk_cvt.to_bytes(str);
    }
    
    // utf8转gbk
    string utf8_to_gbk(const string &str)
    {
        wstring_convert<codecvt_utf8<wchar_t>> utf8_cvt; // utf8-》unicode转换器
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> gbk_cvt(new codecvt<wchar_t, char, mbstate_t>("chs")); // unicode-》gbk转换器
        wstring t = utf8_cvt.from_bytes(str);
        return gbk_cvt.to_bytes(t);
    }
    
    // gbk转utf8
    string gbk_to_utf8(const string &str)
    {
        wstring_convert<codecvt_utf8<wchar_t>> utf8_cvt; // utf8-》unicode转换器
        wstring_convert<codecvt<wchar_t, char, mbstate_t>> gbk_cvt(new codecvt<wchar_t, char, mbstate_t>("chs")); // unicode-》gbk转换器
        wstring t = gbk_cvt.from_bytes(str);
        return utf8_cvt.to_bytes(t);
    } 
    int main()
    {
        locale::global(locale(""));
        string u8str = u8"我爱中国 i love china";
        string str = "我爱中国 i love china";
        wstring w1 = gbk_to_wstring(str);
        str = wstring_to_gbk(w1);
        
        cout << str << endl;
        wcout << w1 << endl;
    
        return 0;
    }
  • 相关阅读:
    Django Form组件实例:登录界面[Form表单提交,Ajax提交]
    开张啦!
    CART剪枝
    TensorFlow全新的数据读取方式:Dataset API入门教程
    关于神经网络中的padding
    cs231n(一)
    协方差与pearson相关系数
    Auto Encoder
    markdown公式编辑参考
    Python使用日常
  • 原文地址:https://www.cnblogs.com/zhaojihui/p/6823297.html
Copyright © 2011-2022 走看看