
バイナリデータの取り扱い方法について教えて下さい。
※PCの環境はWindows7(32bit)、バイナリエディタに「Stirling」を使用しております。
あるPDFファイルを、pdftkというツールで解凍した後、
中身を見ようとバイナリエディタで開いたのですが、
その中に「16進表記で変換できる文字列」と、「変換できない文字列」が
混在しているようで困っております。
下記のサイトで、16進数→漢字に変換して確認しているのですが、
http://www.scarfboy.com/coding/unicode-tool?s=U% …
例えば「名前」という漢字2文字だと、
=============================
「前」は「524D」という値になっているのですが、
「名」が「545C72」という値で格納されているようで、
上記サイトでも上手く変換できませんでした。
「名」の16進表記は本来「524D」だと思うのですが、
なぜこのような値になってしまっているのでしょうか。
また、「545C72」→「名」と変換できるような
良い方法はあるのでしょうか。
============================
その他にも、おそらく「)」を表している部分が、
「FF5C74」という値で格納されたりということが発生しております。
いろいろ勘違いがあるかもしれませんが、ご教授お願い致します。
No.1ベストアンサー
- 回答日時:
>「名」の16進表記は本来「524D」だと思うのですが、
>なぜこのような値になってしまっているのでしょうか。
540Dですね。で、5C72は”\r”。
ということで、変換後のバイナリ(?)が値によっては余計なエスケープが行われているようです。
http://wisdom.sakura.ne.jp/programming/c/Cdata1. …
他にどんなのがエスケープされるか不明ですので、確認は少々キツそうですな。
# ツールのオプションとかで設定できる…かも知れません。
# 無い場合は微妙ですかね……。
とりあえず、事例では0x0D=>"\r"、0x09=>"\t"への変換は食らっているようです。
迅速なご回答と間違いのご指摘ありがとうございました。
ご回答頂いた内容がヒントになり、対処できる兆しが出てきました。
(後ほど質問に補足しておきます。)
かなり悩んでいたので、本当に助かりました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- Excel(エクセル) Excelの関数についておしえてください。 3 2023/04/20 18:36
- その他(Microsoft Office) Microsoft IME 一発で変換できない言葉がある 3 2022/07/19 19:29
- Visual Basic(VBA) シートをコピーする下記記述でダイアログを用いた記述がわかりません?( A = Dir(ThisWor 4 2022/08/22 12:26
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- その他(プログラミング・Web制作) 変換のプログラムを教えてください。 6 2023/07/01 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WORD型をCString型に変換する方法
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
Boolean型変数の値を反転する方法
-
16進コード文字列を文字列に変換
-
型変換について (C++ Builder5)
-
2つ目のレコードの値を取得す...
-
accessでフィールド追加のあと...
-
アクセステーブル、リンクとロ...
-
『列名 '担当者CD' があいま...
-
配列の格納方法
-
INT64対応のprintf系関数はあり...
-
CString型 全角半角を意識せず...
-
COBOL数値転記の仕様
-
CheckBoxの配列化
-
VBA 変数名に変数を使用したい。
-
エクセルで13,410円を数値の134...
-
ExcelからAccessのテーブルに書...
-
CSVファイルのエクスポートでソ...
-
Dir関数で読み取り順を操作でき...
-
Accessのフィールド名に半角括...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB6.0の「vbFromUnicode」はVB....
-
VB.NETで1→A、2→B、26→Z、27→AA...
-
16進をASCIIコードに変換する...
-
WORD型をCString型に変換する方法
-
10進数を2進数
-
C#で文字列を数値に変換する方法
-
16進コード文字列を文字列に変換
-
VC++ std::stringからLPCWSTRに...
-
【C++/CLI】int型からString型...
-
Boolean型変数の値を反転する方法
-
型変換について (C++ Builder5)
-
文字型を日付/時刻型に変換する...
-
textbox.textやlabel.captionの...
-
ASPでVBのFormat関数のような機...
-
VB6.0 String型→Long型変換方法...
-
Excelの数字(文字列)合計につい...
-
2進数から10進数へ変換
-
vb6の桁数指定
-
n進数の値を10進数の値に変換す...
-
数字→漢数字変換
おすすめ情報
> 「名」の16進表記は本来「524D」だと思うのですが、
「540D」の間違いでした。
Wr5さん、ご指摘ありがとうございました。
ご回答頂いた方のヒントから自己解決しました。
(汎用的ではないと思いますが、今回のケースはこれで解決としました。)
下記リンクのエスケープシーケンスのうち、
(http://ratan.dyndns.info/MicrosoftVisualC++/eska …)
今回バグ(?)として変換されていたのは次の5つでした。
====================
コード 文字列(16進表記)
0x08 =>「\b」(5C62)
0x0C =>「\f」 (5C66)
0x09 =>「\t」 (5C74)
0x0D =>「\r」 (5C72)
0x5C =>「\\」 (5C5C)
====================
これを変換表として、ファイル中に出てくる値を
「545C72」→「540D」→「名」
「FF5C74」→「FF09」→「)」
として変換することができました。