Problema com a leitura do arquivo de texto codificado na codificação Ocidental (ISO-8859-1)

3

Estou tendo um problema com a codificação do arquivo de texto ISO-8859-1 (legendas em polonês), que é algo assim:

Mieszka³ sam, | ¿adnej ¿ony, dzieci.

Deverá ser: "Mieszkał sam, żadnej żony, dzieci".

Eu tentei:

  • convertendo o arquivo de texto para UTF-8 usando iconv
  • mudando a codificação para UTF-8 usando medit.
  • alterando o idioma do sistema para o polonês (estou usando o idioma inglês no idioma do sistema, mas as configurações do teclado polonês)

Estou usando a distro do Arch Linux. Vou colocar as informações sobre os locais, pois talvez isso possa afetar o caso.

locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC=pl_PL.UTF-8
LC_TIME=pl_PL.UTF-8
LC_COLLATE="en_US.UTF-8"
LC_MONETARY=pl_PL.UTF-8
LC_MESSAGES="en_US.UTF-8"
LC_PAPER=pl_PL.UTF-8
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT=pl_PL.UTF-8
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

Obrigado por todas as suas respostas.

    
por mordowiciel 20.07.2016 / 01:11

2 respostas

4

A codificação padrão de 8 bits para o polonês é latin2 a.k.a. ISO 8859-2 . O texto com ³ para ł, ¿para ż etc. é o resultado da interpretação de uma seqüência de bytes que representam o texto em latin2 como se representassem latin1. Latin1 a.k.a ISO 8859-1 é a codificação padrão para a maioria dos idiomas da Europa Ocidental.

Se o texto estiver codificado em latin2, você precisará convertê-lo de latin2 para UTF-8, em vez de latin1 para UTF-8.

iconv -f latin2 -t utf8

(O -t utf8 é opcional aqui, já que você está chamando a localidade UTF-8.)

Se o que você está mostrando é o texto que você leu, isso significa que ele foi convertido de forma incorreta de 8 bits para Unicode em algum momento. Para corrigi-lo, converta de volta para os bytes originais e converta-os em sua codificação.

iconv -f utf8 -t latin1 | iconv -f latin2 -t utf8
    
por 20.07.2016 / 02:03
1

Encontrei a solução e deixarei a resposta aqui, pois pode ser útil para outras pessoas que têm o mesmo problema.

Abra o arquivo de texto usando codificação diferente! Para mim (língua polaca), era CP1250 (Europa Central). Para fazer isso, abra o gedit, selecione a opção "Abrir" e encontre o arquivo neeeded. Em seguida, escolha a codificação de caracteres (lado inferior esquerdo) e escolha "WINDOWS-1250".

Como estava conectado às legendas do filme, não é necessário alterar manualmente a codificação toda vez antes de executar legendas com um filme. Em quase todos os players de vídeo, há uma opção para escolher a codificação de legendas padrão. Para o polonês, basta escolher o Windows-1250, e o aplicativo lerá as legendas como se elas estivessem codificadas nessa codificação.

De qualquer forma, obrigado por sua ajuda Gilles!

    
por 20.07.2016 / 22:36