Warning: file_get_contents() [function.file-get-contents]: SSL: 远程主机强迫关闭了一个现有的连接。 in D:\wwwroot\huidong\wwwroot\function.inc.php on line 884

Warning: file_get_contents(https://whois.pconline.com.cn/jsLabel.jsp?ip=127.0.0.1) [function.file-get-contents]: failed to open stream: HTTP request failed! in D:\wwwroot\huidong\wwwroot\function.inc.php on line 884
字符串编码转换(UTF-8,ANSI 互转) - huidong

huidong

首页 | 会员登录 | 关于争取 2022 寒假做出汇东网 Ver3.0.0 !
搜索文章


/////////////////////////////
//
//    EncodingConvert.hpp
//    字符串编码转换
//

#pragma once

#include <codecvt>

namespace EncodingConvert {

    // 转为 UTF-8
    std::string ToUTF8(const std::wstring& str)
    {
        static std::wstring_convert<std::codecvt_utf8<wchar_t> > strCnv;
        return strCnv.to_bytes(str);
    }

    // 转为 ANSI
    std::wstring ToANSI(const std::string& str)
    {
        static std::wstring_convert< std::codecvt_utf8<wchar_t> > strCnv;
        return strCnv.from_bytes(str);
    }

    // 任意编码转换
    // locale = "chs" 或 "zh-cn"
    std::string ToEncoding(const std::wstring& str, const std::string& locale)
    {
        typedef std::codecvt_byname<wchar_t, char, std::mbstate_t> F;
        static std::wstring_convert<F> strCnv(new F(locale));
        return strCnv.to_bytes(str);
    }

    // 任意编码转换
    // locale = "chs" 或 "zh-cn"
    std::wstring ToEncoding(const std::string& str, const std::string& locale)
    {
        typedef std::codecvt_byname<wchar_t, char, std::mbstate_t> F;
        static std::wstring_convert<F> strCnv(new F(locale));
        return strCnv.from_bytes(str);
    }

}


改编自 https://blog.csdn.net/dbx2011/article/details/99735254


注意!如果错误地进行转换可能导致崩溃,比如原本就是 ANSI 编码的字符串转 ANSI,就可能会崩溃。




返回首页


Copyright (C) 2018-2024 huidong