web-dev-qa-db-ja.com

ファイル内のテキストには、数字の入った正方形があります

私が出会ったいくつかのテキストファイルには、数字の入った小さな四角形があります(特定の文字の代わりに)。 Ubuntuでこれらをコピーして貼り付けることはできませんが、geditで各文字を個別に検索および置換することができます(最適だと思うものを置き換えます)。明らかに、これはいくつかのタイプしかない場合にのみ実行可能です平方。

An example of several of the squares

特定のフォントが見つからないため、これらの正方形が表示されると信じてしまいます...私の目的は、これをePubまたはPDFファイルに変換することです。

私の質問は:

  • これはどのような種類のコーディングですか?そして、なぜこれが起こるのですか?
  • フォントがない場合、それらをインストールして問題を解決できますか(たとえば、Calibreを使用して、シンボルをPDFに変換できますか?)
  • テキストファイルをこれらの正方形のないテキストファイルに変換するアプリケーションがありますが、代わりに代わりにそれらを同様の文字で置き換えますか?たとえば、シンボル enter image description here ほぼyなので、この関数で各インスタンスを置き換えたい enter image description here yで。

txtファイルの例は ここ であり、元々は このようにOCRに続いて不正確に注意してください)。

注:uni2asciiまたはiconvのいずれかを動作させることはできませんでした(正しい[オプション]を使用していなかった可能性があります)。ソリューションを投稿する前に、指定されたファイルを確認してください!

5
hayd

ボックスは「グリフが見つかりません」という意味です。ボックス内の文字はユニコードでのコードポイントの16進表現です。

2つの可能性があります。文字エンコードが文字化けしているか、使用しているフォントにその文字のグリフがありません。本当に理解したい場合、これは優れた概要文字エンコーディングです: http://trochee.net/2011/05/character-encoding-tutorial/

奇妙なことに、 + 001F および + 001D は実際には単なる改行です。 OCRがそれらを返すのは奇妙に思えます。

2
Amanda

正方形は(私が知る限り)常に、特殊な組版文字が使用されている場所にあります。たとえば、一部のフォントでは、tyの後にtが続く文字としてyとタイプセットすると、2つの文字の間に余分な不要なスペースが残ります。そのため、より高度な組版に使用される多くのフォントには、「... ancient beau」と読み込めるty文字のような追加の文字があります。ty これらの余分な文字がないので(アスキー/ utf-8コードを持たない可能性があるため、それらをデコードすることさえできない可能性があります)、正方形を取得します。

実際のテキストをコピーする方法についての本当のアイデアはありません(この場合、tyを別々の文字として取得します)が、 TeXの人々 、LaTeXおよびfriends が役立つ場合があります-彼らは必ずしもフォントの専門家であるとは限りませんが、すべて植字に夢中です...

1
Tomas Aschan

それは私が認識しているエンコーディングではありません。私の推測では、欠落しているシンボルは書かれた文字ではなく、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を再実行できない限り、運が悪いと思います。

0
ændrük