Чтение текстовых файлов UTF-8 с помощью ReadList

Можно ли использовать ReadList для чтения текстовых файлов в кодировке UTF-8 (или любых других), используя ReadList [..., Word] или только ASCII? Если это только ASCII, можно ли «исправить» кодировку уже прочитанных данных с хорошей производительностью (т.е. сохранить преимущества производительности ReadList по сравнению с Import )?

Импорт [..., CharacterEncoding -> "UTF8"] работает, но немного медленнее, чем ReadList . $ CharacterEncoding не влияет на ReadList

Загрузите образец файла в кодировке UTF-8 здесь.

Для тестирования производительности на больших входных данных см. Тестовый файл в этот вопрос .


Вот время ответов на большой текстовый файл:

Импорт

In[2]:= Timing[
 data = Import[file, "Text"];
 ]

Out[2]= {5.234, Null}

Хайке

In[4]:= Timing[
 data = ReadList[file, String];
 FromCharacterCode[ToCharacterCode[data], "UTF8"];
 ]

Out[4]= {4.328, Null}

Мистер. Мастер

In[5]:= Timing[
 string = FromCharacterCode[BinaryReadList[file], "UTF-8"];
 ]

Out[5]= {2.281, Null}

5
задан Community 23 May 2017 в 12:27
поделиться