Come salvare il file di testo in formato UTF-8 usando PDFTOTEXT
Domanda
Sto usando lo strumento OpenSource PDFTOTEXT per convertire il PDF in file di testo. Come posso salvare i file di testo nel formato UTF-8 in modo da poter conservare tutti i caratteri di accento nei file di testo. Sto usando il comando seguente per convertire che estrae il contenuto in file di testo ma non è in grado di vedere caratteri accentati.
pdftotext -enc utf -8 book1.pdf book1.txt
Per favore aiutami a risolvere questo problema.
Grazie in anticipo,
Soluzione
È possibile ottenere un elenco di codifiche disponibili utilizzando il comando:
pdftotext -listenc
e scegli quello giusto usando l'argomento -ence. Il mio qui sembra fare UTF-8 per impostazione predefinita. cioè il tuo "UTF-8" è superfluo
pdftotext -enc UTF-8 your.pdf
Potresti voler controllare la tua locale (LC_ALL, Lang, ...).
MODIFICARE:Ho scaricato il seguente PDF:http://www.i18nguy.com/unicode/unicodeexample.pdf
e lo ha convertito su un PC Windows 7 (tedesco) e XPDF 3.02PL5 usando il comando:
pdftotext.exe -enc UTF-8 unicodeexample.pdf
Il file di testo è sicuramente codificato UTF-8, poiché tutti i caratteri vengono visualizzati correttamente. Per cosa stai usando il file di testo? Se lo stai visualizzando tramite un'applicazione Web, la codifica dei contenuti potrebbe essere semplicemente sbagliata, mentre il file di testo è stato convertito come volevi.
Controllo doppio usando un browser (forzare la codifica in Firefox su ISO-8859-1 e UTF-8) o usando un editor esadecimale.
Altri suggerimenti
Le cose stanno diventando un po 'disordinate, quindi sto aggiungendo un'altra risposta.
Ho smontato il PDF e la mia ipotesi migliore sarebbe un "problema" con il carattere usato:
- Apri il file PDF in Acrobar Reader
- Seleziona tutto il testo nella pagina
- Copialo e incollalo in un editor di testo consapevole di Unicode (non c'è OCR "nascosto", quindi stai copiando dati effettivi)
Vedrai che i codepoint con cui finisci non sono quelli che stai vedendo nel lettore PDF. Qualunque sia il carattere, può avere una mappatura diversa da quella definita nello standard Unicode. Pertanto, il tuo contenuto è "WRONT" e non c'è molto che puoi fare al riguardo.