PDFを表示すると文字があり、文字としてコピペできるので、文字(を指定する文字コード)が埋め込まれているものだと思っていた。
結論から言うと、どの文字コードでもない、というのが答え。
どの文字コードなのだろうかと思って調べていたが、Unicodeでもないようだし、、、、とネットで調べたらよく解説されたページがあった。
前編:PDFをコピペするとなぜ“文字化け”が起きてしまうのか 変換テーブル“ToUnicode CMap”が原因だった(https://logmi.jp/tech/articles/324366)
後編:PDFに文字化けを起こさせない対策法 もらったファイルは正規化で、作成ツールは対応済みを使え(https://logmi.jp/tech/articles/324412)
これによると、
- PDFの中身は一部が圧縮されているので、そのまま見ても意味がわからない。QPDFというツールを使うことで、圧縮解除とインデントと付けた見やすい形に変換してくれる。(qpdfはCygwinにも登録されていた。)
- 埋め込まれているのは、文字(=文字コード)ではなく、どのフォントのどの字形(グリフ)をどこに配置するかの情報
- PDF変換前の文書の文字コード(Unicodeなど)の符号位置を、OpenTypeフォントのcmapテーブルを使い、PDFが利用するグリフを指定する番号(CIDおよびGID)に変更して保存
- その際、元の文字コードの符号位置は記録に残されない
- 変換前の複数文字(似ている字形)が、変換後に1つの文字になるケースがあるため、逆変換すると、元の文字に戻らないケースがある。
- その場合、Unicodeの符号位置が手前にある康煕部首にヒットしてしまい、その後ろにある日本語の漢字が選ばれないため、PDFからコピペした文字列の漢字が中国語っぽい文字になる。
ということで、PDFの中身はなにの文字コードを使っているかというと、どの文字コードでもないというのが答えでした。
0 件のコメント:
コメントを投稿