Можно ли использовать 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}