アプリ版:「スタンプのみでお礼する」機能のリリースについて

Turbo C++(Explorer)を使っているのですが、文字列のエンコードってどうすればできるのでしょうか?
下記のような記事も見たのですが自分の使用している環境ではIndyコンポーネントがありません。
何か良い方法ありますでしょうか?お願いします。
--------------------------------
Base64エンコード・デコードする機能は、Indyコンポーネントで提供されています。
Base64のエンコードにはTIdEncoderMIME、デコードにはTIdDecoderMIMEを使います。
//文字列のエンコード
AnsiString Src = "こんにちは、世界";
AnsiString Ret = IdEncoderMIME1->Encode(Src);
// Ret == "grGC8YLJgr+CzYFBkKKKRQ=="
--------------------------------

A 回答 (3件)

Base64はそんなに複雑なルールじゃないので自分で組んでもそれほどの手間じゃないと思います。



RFC3548 ベース64とベース32とベース16コード化
http://www5d.biglobe.ne.jp/~stssk/rfc/rfc3548j.h …

Base64へのエンコーディングの場合、簡単に言えば
3バイト取ってきて、4×6bitのデータとみなして
対応する文字に変換するというものです。

Google Code Searchでサンプル見つけましたので参考までに。
The library is free for all purposes without any express guarantee it works.
ということなのでライセンス上も問題ないでしょう。

dropbear-0.48.1/libtomcrypt/src/misc/base64/ - Google Code Search
http://www.google.com/codesearch?hl=ja&q=show:Qy …
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考URLまで頂き本当に感謝します。

お礼日時:2007/05/01 16:01

#1の者です。


エンコード・データのパディングは0x00ではなくて'='です。
お詫びして訂正いたします。
目で見える内容でなければならないのだから、
0x00のはずがないです。
    • good
    • 0

以下の仕様を満たす関数を自作する、というのも一つの手であると思います。


・入力データから3バイトを取り出す
・取り出した3バイトを6ビットずつ4つに分割する
・4つの6ビットデータの各先頭に2ビット分の0x00を付け加えて、出力する
・入力データがある間、上記の処理を繰り返す
・最後に、出力データ長が4の倍数になるよう、0x00を埋める
    • good
    • 0
この回答へのお礼

ありがとうございました。
参考にさせていただきます。

お礼日時:2007/05/01 16:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!