• ベストアンサー
  • すぐに回答を!

バイナリを16進表現の文字列に変換するには。。

こんにちは。 データベースにバイナリ形式で入っているものを取り出して、16進表現の文字列(テキスト)に直さなくてはなりません。 バイナリを4文字ずつ取り出して、16進数に変えてを繰り返し、繋げてゆけばよいとは思うのですが、具体的な方法がいまいちわかりません。 データベースから取り出すとき、何型の変数に取り出して、どのようにして16進に直せば、効率よく処理を行うことが出来るでしょうか。

noname#744

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数1429
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

データベースからバイナリフィールドを取り出す方法はわからないのですが、取り出した後は、バイト型の配列に格納し、1バイトずつInteger.toHexStringを使って、16進表現の文字列にしていく方法がわかりやすいと思います。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 ご教授いただいた方法にて、実験してみたいと思います。 今後とも、宜しくお願い致します。

関連するQ&A

  • 文字コードから文字列への変換

    よくわからないタイトルですみません(汗。 標準入力からデータを渡すと、I/Oをしてくれるというモジュールを書いているのですが、当初、テキストのみの設計のつもりだったのが、バイナリを扱うはめになってしまいました。 それで、バイナリはstdinから読めなさそうだったので、0xXYZという文字列にしてからstdin経由で渡そうと思ったのです。 今回の質問は、その文字列で書かれた16進コードを文字に直す方法なのです。 つまり、char buf[80] = "0x414243"という文字列を渡した場合、char buf2[80] = "ABC" という文字列を得たいのです。(0x41="A") 変な希望ですが、何通りか試したのですが、根っからのテキスト処理大好きPerl人間なので、Cの知識の無さに挫折してしまいました。 アドバイスをよろしくお願いいたします。

  • VB バイナリ文字列へ変換

    VBでバイナリ文字列へ変換を行いたいのですが、どうしたら良いでしょうか?

  • 特定文字列で囲まれた範囲を抜き書きするためには?

    特定の文字列で開始され、特定の文字列で終了するテキストの一部を抜き出すためには、コマンドラインからは perl -ne 'print if /開始文字列/ .. /終了文字列/' file.txt でできると思うのですが、これがたとえば $page 変数に入ったテキストで同様の処理を Perl 内部のスクリプトで行う時にはどうすればいいのでしょうか? while(<$page>){ ... } とかやって1行1行処理してみようと思ったのだけど、できません。

    • ベストアンサー
    • Perl
  • Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。

    Excelでセル内の文字列をバイナリ値として扱う方法はないでしょうか。 セルに貼付けた(エンコードされている)日本語URLをデコードしたいと思っております。 Unicode文字列はVBAからJScriptの関数を呼び出して対応しましたが、 長期的にはEUC-JPやその他の文字コードもデコードしたいと思っています。 手法は今も調べていますが現時点では、汎用的な関数を自作するしかないと認識しています。 そこで、 ADODB.Streamオブジェクトにバイナリモードでセルの値を書き込んだ後に、 テキストモードで任意のCharsetを指定してみたのですが、 セルの値は文字列として扱われ、バイナリ値として直接書き込めませんでした。 具体的には、EUC-JPでエンコードされた 「%a5%c6%a5%b9%a5%c8(テスト)」という文字列からReplace関数で「%」を除去し、 バイト型配列に代入した時点で、「a5c6a5b9a5c8」という文字列として扱われている という状態です(バイナリ値として入力されませんでした)。 上記以外のアプローチの仕方も含めて模索している状態です。 問題に対する考え方だけでもご指摘いただければと思います。 よろしくお願いします。

  • バイナリファイルとバイナリ文字列の違い

    がわかりません。 例えば >http://e-words.jp/w/E38390E382A4E3838AE383AAE58897.html をみるとバイナリ列は1バイトを連ねたものだというらしいです。 つまり【文】という文字列を文字コードUTF-8でバイト配列化すると [1] => 230 [2] => 150 [3] => 135 となります。 (これはPHPでunpackかけましたが他の言語のGetBytes()などでも同じバイト値がでました。) この【文】という文字列はバイナリ列になるわけですよね? 例えばこの【文】という文字だけを保存したbun.txtというファイルはバイナリーファイルに なるのでしょうか? バイナリファイルの定義をみると >http://e-words.jp/w/E38390E382A4E3838AE383AAE38395E382A1E382A4E383AB.html 上記URLだと >文字コードの範囲などを考慮せずに作成されたファイル というのがバイナリファイルであるとあります。 つまりバイナリファイルとは 1バイト・・つまり8ビット(0&#65374;255)までの数値で表したものを連ねたもので なおかつ、文字コードなどの解釈を一切行わなずに、バイト値のみが記述されたデータと おもってもよいのでしょうか?

  • 文字列から\0を外したい

    文字列(わかりやすいように16進で表現します)から\0を外すには どのようにしたらよいでしょうか? 文字列が、61,62,63,64,20,00,67,68,69 とある場合、これを、61,62,63,64,20,67,68,69 としたいのですが、何かいい方法はありませんでしょうか?

  • バイナリファイル中の日本語文字列の取り出し

    C++にて,バイナリファイル中から日本語の文字列を取り出す処理に苦心しています. 具体的にはPDFファイルのXMPの記述部のXMLに日本語が含まれる場合なのですが,日本語(この場合はUTF-8ですね)の部分が含まれる部分をfread()で読み出してchar[]型の配列に入れて,printfで表示する(漢字コードの変換処理はとりあえずnkf等でUTF-8→SJISに変換)と文字化けします. Javaで同じような処理をしたときは,String の変数にUTF-8で日本語の文字列が挿入され,その文字列を扱うことができたのですが,C++での扱いがわかりません. ご教授よろしくおねがいします.

  • 文字列の変換

    既に確定された文字列を漢字に変換したいのですが。 例 strRei="こんにちはせかい" 上記の文字変数strReiを何らかの処理をして strRei="こんにちは世界" にしたいのです。 ご教示よろしくお願いします。

  • バイナリの文字列を変換したい...

    Jpeg のExifを解析するスクリプトを書いてます あるバイナリの文字列を下記の形式に 変換する手段をどなたかご存知ないですか? (そもその下記の意味さえわからないですが) unsigned byte ascii strings unsigned short unsigned long unsigned rational signed byte signed short signed long signed rational single float double float よろしくお願い致します

    • 締切済み
    • PHP
  • 文字列に\nを入れたい

    データベースAccessからデータを取得しTextFieldにその取得したデータを表示させたのですが、文字数が長くてTextFieldに収まらなくなっしてしまいました。そこで取得した文字列に新たに\nを入れて改行させようとしています。 String str = "文字列40字以上…" if(str.length >= 40){ ***処理内容*** 文字列が40字以上なら40文字目のすぐ後ろに\nを足して改行させて表示させたい。 ただし、40文字目を区切りとして改行させ表示させる。例)96文字なら3行に表示させるようにする。 } このような処理を行いたいのですが、良い方法がわかりません。アドバイスをお願いします。