みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

バイナリデータをテキストデータに変換

生データ(バイナリデータ)をテキストデータに変換するプログラムを教えてください。

投稿日時 - 2016-10-12 00:09:35

QNo.9241503

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

昔はISHってのがありましたけどそういうのではだめなのでしょうか?
探せばDLLでどこかにありそうな気がしますけど。

投稿日時 - 2016-10-18 14:23:06

ANo.8

バイナリといってもフォーマットはいろいろですから
たとえば、exeファイルを アセンブラのソースに戻したいとか
DBのバイナリデータを テキストファイルにダンプしたいとか
バイナリのテキスト文字だけ抜き出したいとか(Linuxのstringsコマンド的に)
具体的にしたほうが よいですよ。

もしかして、Linuxの od コマンドで、 バイナリをテキスト化というか 
16進数や10進数のコード値で表示したり、
ASCIIコードならASCII文字で表示したりっていうのができるので、
そういうイメージなんですかね。

投稿日時 - 2016-10-12 14:05:00

ANo.7

バイナリエディタの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 応答しませんでし

投稿日時 - 2016-10-12 09:32:59

ANo.6

>バイナリデータのファイルをアスキーデータに変換したいです。
つまり、自分でもどういう結果を望んでいるのかよく判っていないということになりますが・・・

自分自身で最終的な状態を具体的にイメージできないものを他人に説明するのはムリ、となります。



仕事としてではなく趣味や勉強のためだったとしても、その程度のことが出来ないのではプログラムなんて作れないと思うんですけど・・・

投稿日時 - 2016-10-12 03:28:51

ANo.5

その場合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 ソースで検索すれば色々と見つかります。

投稿日時 - 2016-10-12 02:15:23

ANo.4

> 初心者で説明が足りていないかもしれませんが、よろしくお願いします。
足りていません。
どんなルール・規則で変換するのか明示してください。

投稿日時 - 2016-10-12 02:04:59

ANo.3

また、asciiコードには数字(0~9)、アルファベットの大文字・小文字(A~Z, a~z)、
キーボードに載っている特殊記号(@とか#とか&とか$とか)の他に、
いわゆる制御コードを含んでいます。
数字、アルファベット、特殊記号をテキスト化する際、例えばバイナリーが0x30だったら
0にするとか0x41だったらAにするとかということはごく普通にできます。
さて、バイナリーデータの中に制御コードに相当するデータを含む場合、
どうやってテキスト化しましょうか。
数字、アルファベット、特殊記号と同じやり方をすると、制御コードをテキストに変換した
結果をエディターか何かで開くと思いっきり文字化けして見えます。

ちょっと具体例を挙げて、このバイナリーデータはこういう風にテキスト化したい!
というのを見せていただけますでしょうか。

投稿日時 - 2016-10-12 01:49:54

ANo.2

バイナリーの中に、たまたま大文字のA(0x41)に相当するバイトがあったとしますね。
そのとき、それをどんな風にテキスト化したいのか、を知りたいです。

ところで、ASCIIコードは0x00~0x7fの128とおりしかありません。
バイナリーの中に0x80~0xffのバイトがあった場合、どうしましょうか?

投稿日時 - 2016-10-12 01:40:25

ANo.1

どんなバイナリーデータのとき、どんな風にテキストにしたいかを教えてください。
例えば、ヘキサで
01 02 03 04
という4バイトがあったとき、
01020304
というテキストにしたいのですか?

投稿日時 - 2016-10-12 00:52:10

補足

ご返信ありがとうございます。
書き方が悪かったのですが、
バイナリデータのファイルをアスキーデータに変換したいです。
初心者で説明が足りていないかもしれませんが、よろしくお願いします。

投稿日時 - 2016-10-12 01:24:54

あなたにオススメの質問