4
我使用base64编码/自http://www.adp-gmbh.ch/cpp/common/base64.htmlUnicode版本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)
你试过另一个编码器了吗?这一个给`std :: string的http://code.google.com/p/stringencoders/source/browse/trunk/src/modp_b64.h – 2011-01-11 03:56:19
你的“只是改变”不起作用的症状是什么?我可能期望字符串被截断,因为长度是用字符而不是字节来指定的,否则应该是OK的。 – 2011-01-11 04:27:10