私が出会ったいくつかのテキストファイルには、数字の入った小さな四角形があります(特定の文字の代わりに)。 Ubuntuでこれらをコピーして貼り付けることはできませんが、gedit
で各文字を個別に検索および置換することができます(最適だと思うものを置き換えます)。明らかに、これはいくつかのタイプしかない場合にのみ実行可能です平方。
特定のフォントが見つからないため、これらの正方形が表示されると信じてしまいます...私の目的は、これをePubまたはPDFファイルに変換することです。
私の質問は:
Calibre
を使用して、シンボルをPDFに変換できますか?)y
なので、この関数で各インスタンスを置き換えたい y
で。txtファイルの例は ここ であり、元々は このように (OCR
に続いて不正確に注意してください)。
注:uni2ascii
またはiconv
のいずれかを動作させることはできませんでした(正しい[オプション]を使用していなかった可能性があります)。ソリューションを投稿する前に、指定されたファイルを確認してください!
ボックスは「グリフが見つかりません」という意味です。ボックス内の文字はユニコードでのコードポイントの16進表現です。
2つの可能性があります。文字エンコードが文字化けしているか、使用しているフォントにその文字のグリフがありません。本当に理解したい場合、これは優れた概要文字エンコーディングです: http://trochee.net/2011/05/character-encoding-tutorial/
奇妙なことに、 + 001F および + 001D は実際には単なる改行です。 OCRがそれらを返すのは奇妙に思えます。
正方形は(私が知る限り)常に、特殊な組版文字が使用されている場所にあります。たとえば、一部のフォントでは、ty
の後にt
が続く文字としてy
とタイプセットすると、2つの文字の間に余分な不要なスペースが残ります。そのため、より高度な組版に使用される多くのフォントには、「... ancient beau」と読み込めるty
文字のような追加の文字があります。ty これらの余分な文字がないので(アスキー/ utf-8コードを持たない可能性があるため、それらをデコードすることさえできない可能性があります)、正方形を取得します。
実際のテキストをコピーする方法についての本当のアイデアはありません(この場合、t
とy
を別々の文字として取得します)が、 TeXの人々 、LaTeXおよびfriends が役立つ場合があります-彼らは必ずしもフォントの専門家であるとは限りませんが、すべて植字に夢中です...
それは私が認識しているエンコーディングではありません。私の推測では、欠落しているシンボルは書かれた文字ではなく、OCRプロセスに関する追加情報を示していると考えられます。
ASCII制御コード の柔軟な解釈を使用すると、0Cは改ページを表し、0Bはタブまたは他の空白になります。 1Dと1Fは「データ構造のフィールドをマークするための区切り文字」と想定されていますが、一目で1Fはunidentified :
$ hexdump -C -s 0xa0 myfile.txt | grep -C 1 " 1f "
00000250 6c 64 20 6f 66 20 61 6e 63 69 65 6e 74 20 62 65 |ld of ancient be|
00000260 61 75 1f 20 61 20 74 65 6d 70 65 72 61 74 65 2c |au. a temperate,|
00000270 20 68 75 6d 69 64 20 72 65 67 69 6f 6e 20 77 68 | humid region wh|
00000280 6f 73 65 20 0a 6d 69 73 1f 20 75 6e 64 75 6c 61 |ose .mis. undula|
00000290 74 69 6e 67 20 68 69 6c 6c 73 20 68 61 64 20 62 |ting hills had b|
--
00000350 20 33 30 30 20 0a 73 70 65 63 69 65 73 20 6f 66 | 300 .species of|
00000360 20 74 72 65 65 73 20 67 72 65 1f 20 69 6e 63 6c | trees gre. incl|
00000370 75 64 69 6e 67 20 6d 61 70 6c 65 73 2c 20 63 61 |uding maples, ca|
--
000006a0 65 20 61 62 6f 75 74 20 31 30 20 6b 69 6c 6f 6d |e about 10 kilom|
000006b0 65 74 72 65 73 20 61 77 61 1f 20 62 65 79 6f 6e |etres awa. beyon|
000006c0 64 20 61 20 70 61 73 73 20 0a 63 61 6c 6c 65 64 |d a pass .called|
このサンプルでは、バイト1Fがty,
、w,
、およびy,
の代わりに縮退して使用されています。
もう1つの可能性は、過去のエンコード変換中にファイルが破損したことです。おそらく、シンボルフォントを指定するメタデータが破棄されたか、より意味のある範囲外の文字がASCIIに縮小された可能性があります。これは、元々は珍しい合字であるキャラクターと一致します。
いずれにせよ、プログラムで翻訳するために必要な情報は確かにファイルに含まれていません。 OCRを再実行できない限り、運が悪いと思います。