3

ワイド文字列をbase64に変換する最良の方法は何ですか?

4

3 に答える 3

6

オクテット(8ビットシンボル)-> Base64(6ビットシンボル)変換は、文字ではなくバイトで機能するため、文字列のエンコードに関係なく同じように機能します。


明確にするために:Base64は文字エンコードではありません。送信者と受信者は、文字エンコード(ASCII、UTF-8、UTF-16、UCS-2など)と転送方法(Base64、gzipなど)について合意する必要があります。

于 2011-05-23T14:08:00.353 に答える
1

一部のデータをbase64にエンコードするには、XercesライブラリのBase64クラスを使用できます。次のようになります。

std::wstring input_string = SOME; // some wide string
// keep it in contiguous memory (the following string is not needed in C++0x)
std::vector<wchar_t> raw_str( input_string.begin(), input_string.end() );

XMLSize_t len;
XMLByte* data_encoded = xercesc::Base64::encode( reinterpret_cast<const XMLByte*>(&raw_str[0]), raw_str.size()*sizeof(wchar_t), &len );
XMLCh* text_encoded = xercesc::XMLString::transcode( reinterpret_cast<char*>(data_encoded) );

// here's text_encoded is encoded text
// do some with text_encoded

XMLString::release( &text_encoded );
XMLString::release( reinterpret_cast<char**>(&data_encoded) );
于 2011-05-23T14:08:19.557 に答える
0

MFCでVisualC++を使用している場合は、これを行うためのライブラリがすでに存在します。チェックアウトしBase64EncodeBase64Decode

于 2011-05-23T14:14:04.690 に答える