Por que não é possível pesquisar o conteúdo do arquivo de texto codificado em UTF-16?

3

Eu entendo que, por exemplo O catfish e o gnome-search-utils podem pesquisar dentro do conteúdo do arquivo codificado em UTF-8. Para poder pesquisar palavras ou números em arquivos de texto, é necessário convertê-los via iconv para UTF-8 primeiro.

Se o arquivo for conhecido, editores de texto como o gedit ou o mousepad não terão problemas com o UTF-16.

Por que não existe uma ferramenta de busca (GUI ou linha de comando) com nenhuma das distribuições do Linux que podem manipular arquivos txt codificados em UTF-16?

Estou no Xubuntu.

    
por Enteneller 09.05.2017 / 17:33

1 resposta

5

O UTF-16 (ou UCS-2) é altamente hostil para as cadeias terminadas em nulo usadas pela biblioteca padrão C e pelo POSIX ABI. Por exemplo, os argumentos da linha de comando são terminados por NULs (bytes com valor zero) e qualquer caractere UTF-16 com valor numérico < 256 contém um zero byte, portanto, qualquer seqüência das letras inglesas usuais seria impossível de representar em UTF-16 em um argumento de linha de comando.

Isso, por sua vez, significa que os utilitários precisariam ter entrada em algum outro formato (digamos, UTF-8) e converter em UTF-16; ou eles precisariam tomar sua opinião de alguma outra forma. A primeira opção exigiria que todos esses utilitários contivessem (ou vinculassem) o código para a conversão, e o segundo tornaria a interface desses programas com outros utilitários um pouco difícil.

Dadas essas dificuldades, e o fato de que o UTF-8 tem melhores propriedades de compatibilidade com versões anteriores, eu acho que poucos se importam em usar o UTF-16 o suficiente para serem motivados a criar ferramentas para isso.

    
por 09.05.2017 / 19:56