Leitura de arquivos de texto UTF-8 com ReadList

É possível usarReadList para ler arquivos de texto codificados em UTF-8 (ou qualquer outro) usandoReadList[..., Word] ou é apenas ASCII? Se for apenas ASCII, é possível "corrigir" a codificação dos dados já lidos com bom desempenho (ou seja, preservando as vantagens de desempenho deReadList sobreImport)?

Import[..., CharacterEncoding -> "UTF8"] funciona, mas é um pouco mais lento queReadList. $CharacterEncoding não tem efeito emReadList

Faça o download de um exemplo de arquivo codificado em UTF-8 aqu

Para testar o desempenho em uma entrada grande, consulte o arquivo de teste emessa questã.

Aqui estão os horários das respostas em um arquivo de texto grande e ish:

Importa

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

Out[2]= {5.234, Null}

Heike

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

Out[4]= {4.328, Null}

Senhor. Mag

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

Out[5]= {2.281, Null}

questionAnswers(2)

yourAnswerToTheQuestion