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