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;
    }
  • 相关阅读:
    jQuery入门(8):工具
    jQuery入门(2):核心(核心函数,对象访问,多库共存)
    jQuery入门(6):Ajax
    jQuery入门(7):效果
    jQuery入门(4):CSS相关API
    threadwait/sleep
    【转】Query的extend扩展方法使用点滴
    jquery.query2.1.7.js 操作url
    zhuan
    通用分页存储过程 采用ROW_NUMBER(),支持2005及以后的版本
  • 原文地址:https://www.cnblogs.com/zhaojihui/p/6823297.html
Copyright © 2011-2022 走看看