Certains fichiers texte que je rencontre ont des petits carrés avec des nombres (à la place de certains caractères). Je ne parviens pas à les copier-coller dans Ubuntu, mais je peux rechercher et remplacer dans gedit
chaque caractère individuellement (remplacer ce que je pense être la meilleure correspondance), ce n'est évidemment possible que s'il existe quelques types de carré.
Je suis amené à croire que ces carrés sont affichés car il me manque certaines polices ... Mon but est de convertir ceci en un fichier ePub ou PDF.
Ma question est:
Calibre
)?y
, donc je voudrais que cette fonction remplace chaque instance de avec un y
. Un exemple de fichier txt est ici et il ressemblait à l'origine comme ceci (les inexactitudes de note suivies OCR
).
Remarque: je ne pouvais pas faire fonctionner ni uni2ascii
ni iconv
(bien que je n’aie peut-être pas utilisé les bonnes [options]), veuillez donc vérifier le fichier avant de publier une solution!
Les cases signifient "glyphe non trouvé"; les caractères dans la boîte sont des représentations hexadécimales du point de code, en unicode.
Il y a deux possibilités: le codage des caractères est déformé ou la police que vous utilisez ne contient pas de glyphe pour ce caractère. C’est un excellent encodage de caractère si vous voulez vraiment le comprendre: http://trochee.net/2011/05/character-encoding-tutorial/
Curieusement, + 001F et + 001D ne sont que des sauts de ligne glorifiés. Il semble étrange que l'OCR les renvoie.
Les carrés (à ce que je sache) se produisent toujours à des endroits où des caractères spéciaux ont été utilisés pour la composition. Par exemple, si vous composez ty
comme la lettre t
suivie de la lettre y
dans certaines polices, vous laissez un espace supplémentaire non souhaité entre les deux lettres. Pour cette raison, de nombreuses polices utilisées pour la composition plus évoluée ont des caractères supplémentaires, comme le caractère ty
qui devrait se lire "... ancient beauty a temperate ... ". Puisque vous n'avez pas ces caractères supplémentaires (il est possible que vous ne puissiez même pas les décoder, car ils pourraient ne pas avoir de code ascii/utf-8), vous obtenez des carrés.
Je n'ai aucune idée réelle sur la façon de copier le texte lui-même (et dans ce cas, obtenez une t
et une y
en tant que caractères séparés), mais les personnes présentes sur TeX, LaTeX et leurs amis pourrait peut-être vous aider - ils ne sont pas nécessairement des experts en polices de caractères, mais ils font tous partie de la composition ...
Ce n'est pas un encodage que je reconnaisse. J'imagine que les symboles manquants ne représentent pas des caractères écrits, mais indiquent plutôt des informations supplémentaires sur le processus de ROC.
En utilisant une interprétation flexible de codes de contrôle ASCII , 0C pourrait représenter un saut de page et 0B pourrait être un onglet ou un autre espace. 1D et 1F sont supposés être des "délimiteurs pour marquer des champs de structures de données", mais en un coup d'œil, 1F aurait pu être coopté pour signifier non identifié :
$ 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|
Dans cet exemple, l'octet 1F est utilisé de manière dégénérée à la place de ty,
, w,
et y,
.
Une autre possibilité est que le fichier ait été endommagé au cours d'une conversion de codage passée. Peut-être que les métadonnées spécifiant les polices de symboles ont été ignorées ou que des caractères plus significatifs, hors de portée, ont été réduits en ASCII. Cela concorderait avec le fait que les caractères étaient à l’origine des ligatures rares.
Dans tous les cas, les informations nécessaires à la traduction par programme ne sont certainement pas incluses dans le fichier. À moins que vous ne puissiez réexécuter l'OCR, je pense que vous n'avez pas de chance.