gpt4 book ai didi

c++ - Unicode版本的base64编码/解码

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:57:39 25 4
gpt4 key购买 nike

我正在使用来自 http://www.adp-gmbh.ch/cpp/common/base64.html 的 base64 编码/解码

它与下面的代码一起工作得很好。

  const std::string s = "I Am A Big Fat Cat" ;

std::string encoded = base64_encode(reinterpret_cast<const unsigned char*>(s.c_str()), s.length());
std::string decoded = base64_decode(encoded);

std::cout << _T("encoded: ") << encoded << std::endl;
std::cout << _T("decoded: ") << decoded << std::endl;

但是,说到unicode

namespace std
{
#ifdef _UNICODE
typedef wstring tstring;
#else
typedef string tstring;
#endif
}
const std::tstring s = _T("I Am A Big Fat Cat");

怎样才能继续使用上面的功能?

只是改变

std::string base64_encode(unsigned TCHAR const* , unsigned int len);
std::tstring base64_decode(std::string const& s);

将无法正常工作。

(我希望 base64_encode 返回 ASCII。因此,应该使用 std::string 而不是 std::tstring)

最佳答案

Base64 将二进制数据编码为文本。因此,您只需要使用 wcstombs & co 将宽字符转换为相应的字节即可。一切顺利。

关于c++ - Unicode版本的base64编码/解码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4654012/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com