Я пытаюсь преобразовать некоторые файлы из RTF в текст. Оригиналы были созданы с некоторым приложением Windows (возможно, Word), но преобразование происходит на сервере Linux. Инструмент, который я хочу использовать, - unrtf
, поскольку он поставляется с моим дистрибутивом Linux (SLES !!. X), предварительно установленным ... или, по крайней мере, мне не нужно было его заполнять.encoding: unrtf SYMBOL.charmap необходимо изменить
Довольно много документов на unrtf
. Он работает хорошо, и есть справочная страница с некоторой ограниченной информацией. Моя проблема заключается в том, что выдается кодировка ISO-8859-1, и мне нужен ISO-8859-15, чтобы получить символ евро (€). То, что я получаю, является не символом (¬). Просмотр документа в шестнадцатеричном режиме Я вижу, что есть значение xAC00 в точке, где должен быть символ.
Поиск в Интернете Я выяснил, что € имеет значение unicde x20AC и ¬ имеет значение unicode x00AC. Немного больше поисков, предложенных для кодирования ISO-8859-15, правильным значением будет x00A4. Большая часть информации, которую я нашел, была противоречивой и запутанной (не говоря уже о том, что в конце концов unrtf
).
Среди команд я попытался это:
unrtf --text $RTF > $XRTF
unrtf --text $RTF | iconv -c -f UTF-8 -t ISO-8859-15 > $XRTF
где $ RTF и $ XRTF являются входные и выходные файлы соответственно. Я проверил предполагаемую кодировку моего файла rtf с помощью
file -bi $RTF
, и это вернуло ответ ISO-8859-1. Так что я попытался следующие:
unrtf --text $RTF | iconv -c -f ISO-8859-1 -t ISO-8859-15 > $XRTF
В одном заключительном хвататься за соломинку, я попытался создать свой собственный файл SYMBOL.charmap и изменил значение для символа не в «U < 20AC>», который является синтаксис для этого файла , Тогда я попробовал команду:
unrtf --text -P $HOME/usr/local/share/unrtf $RTF > $XRTF
Все эти попытки не достигли абсолютно ничего ... кроме второго, который просто удалили не символ в целом в силу опции -c (я думаю).
У кого-нибудь есть идеи о том, как я мог бы достичь желаемого преобразования?