Невозможно преобразовать � в удобочитаемую строку с помощью iconv

У меня есть большой текстовый файл с кодировкой iso-8859-1, который я получаю из:

file -i file.txt

Когда я копирую файл, чтобы увидеть данные, вместо тайской строки будет ��. Сначала я подумал, что могу просто использовать iconv в linux для преобразования формата кодировки в другой тип, который я нашел в формате iso-8859-11, который может читать тайскую строку и думает, что это сработает. Что-то вроде этого:

iconv -f iso-8859-1 -t iso-8859-11 file.txt > output.txt

Но вместо этого я получил эту ошибку:

iconv: illegal input sequence at position 1169

это место, которое имеет ��. Я пробовал с //TRANSLIT, но все равно получил нечитаемый символ.

Есть ли способ преобразовать этот текстовый файл для чтения тайской строки? Я знаю, что могу просто открыть файл в каком-нибудь текстовом редакторе и сохранить в нужном мне формате кодировки, но у меня слишком много файлов, и каждый файл размером почти в гигабайт. Я думаю, что iconv может помочь мне преобразовать каждый файл без ручного преобразования каждого из них.

Пс. Я пытаюсь открыть с помощью Python:

with open('file.txt','r+', encoding='iso-8859-11') as f:
   print(f.read())

который может отлично читать тайский характер, но мне нужно преобразовать здесь большое количество файлов, поэтому мне нужен iconv.


person Jamiewp    schedule 08.07.2019    source источник
comment
Может попробовать iconv -f iso-8859-1 -t iso-8859-11//TRANSLIT file.txt > output.txt. См. также iconv(1) справочную страницу. Или, может быть, шрифт нужно включить в терминале. Или, может быть, переключиться на UTF-8.   -  person jww    schedule 08.07.2019
comment
@jww Я пробовал, это меняется на что-то вроде 1I!.O?A?a?, как я уже упоминал. Читабельно, но не тайским шрифтом   -  person Jamiewp    schedule 09.07.2019