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}