- 締切済み
バイナリデータをテキストデータに変換
生データ(バイナリデータ)をテキストデータに変換するプログラムを教えてください。
- みんなの回答 (9)
- 専門家の回答
みんなの回答
- bakabonmate
- ベストアンサー率32% (146/456)
昔はISHってのがありましたけどそういうのではだめなのでしょうか? 探せばDLLでどこかにありそうな気がしますけど。
- superside0
- ベストアンサー率64% (461/711)
バイナリといってもフォーマットはいろいろですから たとえば、exeファイルを アセンブラのソースに戻したいとか DBのバイナリデータを テキストファイルにダンプしたいとか バイナリのテキスト文字だけ抜き出したいとか(Linuxのstringsコマンド的に) 具体的にしたほうが よいですよ。 もしかして、Linuxの od コマンドで、 バイナリをテキスト化というか 16進数や10進数のコード値で表示したり、 ASCIIコードならASCII文字で表示したりっていうのができるので、 そういうイメージなんですかね。
- neKo_quatre
- ベストアンサー率44% (735/1636)
バイナリエディタのStirlingだと、 Stirlingの詳細情報 : Vector ソフトを探す! http://www.vector.co.jp/soft/win95/util/se079072.html ファイル開いて、[ファイル]-[ダンプイメージの保存]で、そんな感じになります。 ADDRESS 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 0123456789ABCDEF ------------------------------------------------------------------------------ 00000000 44 4E 53 83 54 81 5B 83 6F 81 5B 82 AA 8E 67 82 DNSサーバーが使え 00000010 A6 82 DC 82 B9 82 F1 81 42 0D 0A 8E 9E 8A D4 93 ません。..時間内 00000020 E0 82 C9 44 4E 53 83 54 81 5B 83 6F 81 5B 82 AA にDNSサーバーが 00000030 89 9E 93 9A 82 B5 82 DC 82 B9 82 F1 82 C5 82 B5 応答しませんでし
- bardfish
- ベストアンサー率28% (5029/17766)
>バイナリデータのファイルをアスキーデータに変換したいです。 つまり、自分でもどういう結果を望んでいるのかよく判っていないということになりますが・・・ 自分自身で最終的な状態を具体的にイメージできないものを他人に説明するのはムリ、となります。 仕事としてではなく趣味や勉強のためだったとしても、その程度のことが出来ないのではプログラムなんて作れないと思うんですけど・・・
- yama1718
- ベストアンサー率41% (670/1618)
その場合BASE64というエンコード・デコード方法があります。 メールでバイナリーデータを送受信する時などに使われています。 https://ja.wikipedia.org/wiki/Base64 方法は簡単です。 バイナリーデータをビット列で考えて6ビットずつの値に変換します。 丁度3バイト(8bit)の値が4つの6bitの値に分解されます。 12345678 12345678 12345678 123456 781234 567812 345678 それで、0~63に変換された値を ASCIIコードのA~Z,a~z,0~9,記号の+/に割り当てます 00~15:ABCDEFGHIJKLMNOP 16~31:QRSTUVWXYZabcdef 32~47:ghijklmnopqrstuv 48~63:wxyz0123456789+/ デコードはその逆をするだけです。 簡単なアルゴリズムだから自分でプログラムを作れなきゃなぁと思うけど、 BASE64 ソースで検索すれば色々と見つかります。
- Gotthold
- ベストアンサー率47% (396/832)
> 初心者で説明が足りていないかもしれませんが、よろしくお願いします。 足りていません。 どんなルール・規則で変換するのか明示してください。
- asuncion
- ベストアンサー率33% (2127/6289)
また、asciiコードには数字(0~9)、アルファベットの大文字・小文字(A~Z, a~z)、 キーボードに載っている特殊記号(@とか#とか&とか$とか)の他に、 いわゆる制御コードを含んでいます。 数字、アルファベット、特殊記号をテキスト化する際、例えばバイナリーが0x30だったら 0にするとか0x41だったらAにするとかということはごく普通にできます。 さて、バイナリーデータの中に制御コードに相当するデータを含む場合、 どうやってテキスト化しましょうか。 数字、アルファベット、特殊記号と同じやり方をすると、制御コードをテキストに変換した 結果をエディターか何かで開くと思いっきり文字化けして見えます。 ちょっと具体例を挙げて、このバイナリーデータはこういう風にテキスト化したい! というのを見せていただけますでしょうか。
- asuncion
- ベストアンサー率33% (2127/6289)
バイナリーの中に、たまたま大文字のA(0x41)に相当するバイトがあったとしますね。 そのとき、それをどんな風にテキスト化したいのか、を知りたいです。 ところで、ASCIIコードは0x00~0x7fの128とおりしかありません。 バイナリーの中に0x80~0xffのバイトがあった場合、どうしましょうか?
- asuncion
- ベストアンサー率33% (2127/6289)
どんなバイナリーデータのとき、どんな風にテキストにしたいかを教えてください。 例えば、ヘキサで 01 02 03 04 という4バイトがあったとき、 01020304 というテキストにしたいのですか?
補足
ご返信ありがとうございます。 書き方が悪かったのですが、 バイナリデータのファイルをアスキーデータに変換したいです。 初心者で説明が足りていないかもしれませんが、よろしくお願いします。