Я использую base64 кодирование / декодирование из http://www.adp -gmbh.ch / cpp / common / base64.html
Хорошо работает со следующим кодом.
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 :: tstring следует использовать std :: string)