it-swarm.com.de

Text in Dateien enthält Quadrate mit Zahlen

Einige Textdateien, auf die ich stoße, enthalten kleine Quadrate mit Zahlen (anstelle bestimmter Zeichen). Ich kann diese in Ubuntu nicht kopieren und einfügen, aber ich kann jedes Zeichen einzeln in gedit suchen und ersetzen (was meiner Meinung nach die beste Übereinstimmung ist). Dies ist natürlich nur möglich, wenn es nur wenige Typen gibt von Platz.

An example of several of the squares

Ich glaube, dass diese Quadrate angezeigt werden, weil mir bestimmte Schriftarten fehlen ... Mein Ziel ist es, diese in eine ePub - oder PDF - Datei umzuwandeln.

Meine Frage ist:

  • Um welche Art von Codierung handelt es sich? Und warum passiert das?
  • Wenn Schriftarten fehlen, kann ich sie installieren und das Problem beheben (erlauben Sie mir, Symbole in PDF z. B. mit Calibre) umzuwandeln?).
  • Gibt es eine Anwendung, um meine Textdatei in eine Textdatei ohne diese Quadrate umzuwandeln, anstatt sie durch ein ähnliches Zeichen zu ersetzen ? Zum Beispiel das Symbol enter image description here ist so ziemlich ein y, daher möchte ich, dass diese Funktion jede Instanz von ersetzt enter image description here mit einem y.

Eine Beispiel-TXT-Datei ist hier und sie sah ursprünglich so aus (Ungenauigkeiten wurden nach OCR vermerkt.)

Hinweis: Ich konnte weder uni2ascii oder iconv zum Arbeiten (obwohl ich möglicherweise nicht die richtigen [Optionen] verwendet habe), überprüfen Sie dies bitte anhand der angegebenen Datei, bevor Sie eine Lösung veröffentlichen!

5
hayd

Die Kästchen bedeuten "Glyphe nicht gefunden"; Die Zeichen in der Box sind hexadezimale Darstellungen des Codepunkts in Unicode.

Es gibt zwei Möglichkeiten: Die Zeichenkodierung ist verstümmelt, oder die von Ihnen verwendete Schriftart enthält keine Glyphe für dieses Zeichen. Dies ist eine großartige Übersicht über die Zeichencodierung, wenn Sie sie wirklich verstehen möchten: http://trochee.net/2011/05/character-encoding-tutorial/

Merkwürdigerweise sind + 001F und + 001D wirklich nur verherrlichte Zeilenumbrüche. Es scheint seltsam, dass OCR diese zurückgeben würde.

2
Amanda

Die Quadrate kommen (soweit ich das beurteilen kann) immer an Stellen vor, an denen spezielle Satzzeichen verwendet wurden. Wenn Sie beispielsweise ty als Buchstaben t gefolgt von dem Buchstaben y in einigen Schriftarten eingeben, entsteht ein zusätzlicher, unerwünschter Abstand zwischen den beiden Buchstaben. Aus diesem Grund haben viele Schriften, die für fortgeschrittene Schriftsätze verwendet werden, zusätzliche Zeichen, wie das Zeichen ty, das "... uralter Beau" lauten solltety a temperate ... ". Da Sie diese zusätzlichen Zeichen nicht haben (es ist möglich, dass Sie sie nicht einmal dekodieren können, da sie möglicherweise keinen ASCII/UTF-8-Code haben), erhalten Sie Quadrate.

Ich habe keine Ahnung, wie der eigentliche Text kopiert werden soll (und in diesem Fall werden t und y als separate Zeichen angezeigt), aber die Personen bei TeX, LaTeX und Freunde könnten vielleicht helfen - sie sind nicht unbedingt Experten für Schriften, aber sie sind alle in Schriftsatz ...

1
Tomas Aschan

Das ist keine Kodierung, die ich erkenne. Ich vermute, dass die fehlenden Symbole keine geschriebenen Zeichen darstellen, sondern zusätzliche Informationen zum OCR-Prozess anzeigen.

Unter Verwendung einer flexiblen Interpretation von ASCII-Steuercodes kann 0C einen Seitenumbruch darstellen und 0B kann ein Tabulator oder ein anderes Leerzeichen sein. 1D und 1F sollen "Begrenzer zum Markieren von Feldern von Datenstrukturen" sein, aber auf einen Blick könnte 1F möglicherweise als nicht identifiziert bezeichnet werden :

$ 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|

In diesem Beispiel wird das Byte 1F entartet anstelle von ty,, w, Und y, Verwendet.

Eine andere Möglichkeit besteht darin, dass die Datei während einer früheren Codierungskonvertierung beschädigt wurde. Möglicherweise wurden Metadaten, die Symbolschriften spezifizieren, verworfen, oder aussagekräftigere Zeichen außerhalb des Bereichs wurden in ASCII reduziert. Dies würde mit den Zeichen übereinstimmen, die ursprünglich seltene Ligaturen waren.

In jedem Fall sind die zum programmgesteuerten Übersetzen erforderlichen Informationen sicherlich nicht in der Datei enthalten. Wenn Sie die OCR nicht erneut ausführen können, haben Sie vermutlich Pech.

0
ændrük