Autor Tópico: Problemas com codificação utf-8 no gedit  (Lida 6961 vezes)

Offline mateusgf

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Problemas com codificação utf-8 no gedit
« Online: 27 de Maio de 2011, 16:49 »
Fala glr! Meu primeiro post aqui no fórum... to tentando usar o linux pra ver se substituo de vez pelo ruwindows.

Tô com problema de codificação. Eu faço tudo em UTF-8. Tenho um arquivo .php em UTF-8 que eu fiz no windows e agora to editando no gedit. Só que ele não tá convertendo os acentos pra UTF-8. Quando eu abro ele no browser ele não reconhece os acentos, mas quando eu mudo a codificação do browser pra iso-8859-1 o acento é reconhecido. Como é que eu resolvo isso? Pode me mandar uma solução pro gedit ou pro vim.

Valeu, até mais!

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #1 Online: 27 de Maio de 2011, 18:50 »
O sistema inteiro usa utf8 (a não ser que você tenha mudado). Converta os arquivos problemáticos pra utf8 com recode, iconv ou qualquer outro programa.

Offline mateusgf

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #2 Online: 27 de Maio de 2011, 19:01 »
recode, iconv? são programas? pego eles onde?

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #3 Online: 27 de Maio de 2011, 19:29 »
recode, iconv? são programas? pego eles onde?

Ola

Tente ver se estão no Gerenciador de Pacotes Synaptic  ;D

[]'s

Offline mateusgf

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #4 Online: 27 de Maio de 2011, 20:29 »
depois de instalado o recode vai pra onde?

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #5 Online: 27 de Maio de 2011, 23:15 »
Não tem interface gráfica, logo não vai parecer no menu. Leia o manual (man recode) e/ou busque exemplos/dicas/etc na internet. Seja proativo.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Problemas com codificação utf-8 no gedit
« Resposta #6 Online: 28 de Maio de 2011, 13:40 »
Fala glr! Meu primeiro post aqui no fórum... to tentando usar o linux pra ver se substituo de vez pelo ruwindows.

Tô com problema de codificação. Eu faço tudo em UTF-8. Tenho um arquivo .php em UTF-8 que eu fiz no windows e agora to editando no gedit. Só que ele não tá convertendo os acentos pra UTF-8. Quando eu abro ele no browser ele não reconhece os acentos, mas quando eu mudo a codificação do browser pra iso-8859-1 o acento é reconhecido. Como é que eu resolvo isso? Pode me mandar uma solução pro gedit ou pro vim.

Valeu, até mais!

A não ser que o editor que você usou no Windows tenha suporte direto do UTF-8, você provavelmente editou o arquivo usando a página de código Windows-1252 (ou 1251, sei lá!). No Ubuntu todo o sistema usa UTF-8, daí, caracteres "acentuados" são codificados diferente no Windows-1252 (que é uma extensão do ISO-8859-1).

Como já te falaram, use o iconv:

Código: [Selecionar]
$ iconv --from-code=ISO8859-1 --to-code=UTF-8 meutexto.txt -o utf8texto.txt
O iconv já vem instaldo...

Para ver todos os charsets suportados pelo iconv use:

Código: [Selecionar]
$ iconv --list
« Última modificação: 28 de Maio de 2011, 13:42 por fpissarra »

Offline mateusgf

  • Usuário Ubuntu
  • *
  • Mensagens: 4
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #7 Online: 29 de Maio de 2011, 12:22 »
@irtigor Ser proativo no linux é um tanto difícil. Procurei muito sobre codificação na net antes de fazer esse post aqui e a única coisa que achei foi  sobre como converter de UTF-8 para ISO8859-1. Pesquisar coisas do linux é difícil pq vc não sabe exatamento pelo que procurar.

@fpissarra Eu usava o Notepad++ pra editar os arquivos. Quer dizer que o windows não codificava em UTF-8? Era um pseudo UTF-8? De qualquer forma eu usei
Código: [Selecionar]
iconv --from-code=ISO8859-1 --to-code=UTF-8 teste.php -o teste.php e converteu o arquivo pra utf-8, porém não alterou os sinais de acentuação. Tive que digitar de novo os sinais manualmente. Talvez pq o arquivo não era ISO8859-1.

Eu fico intrigado é que, antes, mesmo eu editando o arquivo "teste.php" no gedit colocando acento e salvando ele não reconhecia. Ficava como se não tivesse salvando em utf-8 mesmo eu salvando como utf-8.

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Problemas com codificação utf-8 no gedit
« Resposta #8 Online: 29 de Maio de 2011, 20:58 »
@irtigor Ser proativo no linux é um tanto difícil. Procurei muito sobre codificação na net antes de fazer esse post aqui e a única coisa que achei foi  sobre como converter de UTF-8 para ISO8859-1. Pesquisar coisas do linux é difícil pq vc não sabe exatamento pelo que procurar.
O que pode ser mais "proativo" do que uma simples linha de comando?

Citar
@fpissarra Eu usava o Notepad++ pra editar os arquivos. Quer dizer que o windows não codificava em UTF-8? Era um pseudo UTF-8? De qualquer forma eu usei
Código: [Selecionar]
iconv --from-code=ISO8859-1 --to-code=UTF-8 teste.php -o teste.php e converteu o arquivo pra utf-8, porém não alterou os sinais de acentuação. Tive que digitar de novo os sinais manualmente. Talvez pq o arquivo não era ISO8859-1.

Qual foi a parte de "você provavelmente editou o arquivo usando a página de código Windows-1252", do meu texto original que você não entendeu?

Citar
Eu fico intrigado é que, antes, mesmo eu editando o arquivo "teste.php" no gedit colocando acento e salvando ele não reconhecia. Ficava como se não tivesse salvando em utf-8 mesmo eu salvando como utf-8.
Use um editor melhor... o VIM, por exemplo...

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Problemas com codificação utf-8 no gedit
« Resposta #9 Online: 29 de Maio de 2011, 21:27 »
Uma demonstração de como a conversão funciona: No Windows, que usa o charset WINDOWS-1252, por default, criei o arquivo texto testew1252.txt com uma linha escrita: "Está cheio de acentuação."... Dai, no Linux, vamos dar uma olhada no arquivo:

Código: [Selecionar]
$ hd testew1252.txt
00000000  45 73 74 e1 20 63 68 65  69 6f 20 64 65 20 61 63  |Est. cheio de ac|
00000010  65 6e 74 75 61 e7 e3 6f  2e 0a                    |entua..o..|

Como pode observar, os bytes da posição 3, 21 e 22 são E1, E7 e E3, correspondedo ao 'á', 'ç' e 'ã', de acordo com a tabela em http://en.wikipedia.org/wiki/Windows-1252.

Depois de converter com o iconv:

Código: [Selecionar]
$ iconv -f WINDOWS-1252 -t UTF-8 testw1252.txt -o testUTF8.txt
$ hd testUTF8.txt
00000000  45 73 74 c3 a1 20 63 68  65 69 6f 20 64 65 20 61  |Est.. cheio de a|
00000010  63 65 6e 74 75 61 c3 a7  c3 a3 6f 2e 0a           |centua....o..|

Como pode observar o 'á' corresponde ao código C3 A1, o 'ç' corresponde a C3 A7 e o 'ã' ao C3 A3. O arquivo testeUTF8.txt tem agora exatamente 3 bytes adicionais, em relação ao original. E. se você abrir o arquivo com um editor que preste ou usar o comando cat, verá:

Código: [Selecionar]
$ cat testUTF8.txt
Está cheio de acentuação.

Com todos os acentos convertidos!
« Última modificação: 29 de Maio de 2011, 21:29 por fpissarra »

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: Problemas com codificação utf-8 no gedit
« Resposta #10 Online: 30 de Maio de 2011, 09:09 »
Uma demonstração de como a conversão funciona: No Windows, que usa o charset WINDOWS-1252, por default, criei o arquivo texto testew1252.txt com uma linha escrita: "Está cheio de acentuação."... Dai, no Linux, vamos dar uma olhada no arquivo:

Código: [Selecionar]
$ hd testew1252.txt
00000000  45 73 74 e1 20 63 68 65  69 6f 20 64 65 20 61 63  |Est. cheio de ac|
00000010  65 6e 74 75 61 e7 e3 6f  2e 0a                    |entua..o..|

Como pode observar, os bytes da posição 3, 21 e 22 são E1, E7 e E3, correspondedo ao 'á', 'ç' e 'ã', de acordo com a tabela em http://en.wikipedia.org/wiki/Windows-1252.

Depois de converter com o iconv:

Código: [Selecionar]
$ iconv -f WINDOWS-1252 -t UTF-8 testw1252.txt -o testUTF8.txt
$ hd testUTF8.txt
00000000  45 73 74 c3 a1 20 63 68  65 69 6f 20 64 65 20 61  |Est.. cheio de a|
00000010  63 65 6e 74 75 61 c3 a7  c3 a3 6f 2e 0a           |centua....o..|

Como pode observar o 'á' corresponde ao código C3 A1, o 'ç' corresponde a C3 A7 e o 'ã' ao C3 A3. O arquivo testeUTF8.txt tem agora exatamente 3 bytes adicionais, em relação ao original. E. se você abrir o arquivo com um editor que preste ou usar o comando cat, verá:

Código: [Selecionar]
$ cat testUTF8.txt
Está cheio de acentuação.

Com todos os acentos convertidos!


Mas que interessante isso. Que bom seria se sempre conseguíssemos alguns exemplos simples mostrando as diferenças entre o linux e o outro.
Parabéns pelo exemplo. Vou testar aqui no meu.

ps:
Citar
Como pode observar o 'á' corresponde ao código C3 A1, o 'ç' corresponde a C3 A7 e o 'ã' ao C3 A3. O arquivo testeUTF8.txt tem agora exatamente 3 bytes adicionais, em relação ao original. E. se você abrir o arquivo com um editor que preste ou usar o comando cat, verá:

o fato de ter dois associados ao caractere é pelo fato de ele ser composto? Por exemplo, um para o c e outro para o cedilha, daí ele usa os dois para produzir ç?
« Última modificação: 30 de Maio de 2011, 09:14 por sigur »

Offline fpissarra

  • Usuário Ubuntu
  • *
  • Mensagens: 246
    • Ver perfil
    • Lost in the e-Jungle
Re: Problemas com codificação utf-8 no gedit
« Resposta #11 Online: 31 de Maio de 2011, 20:17 »
o fato de ter dois associados ao caractere é pelo fato de ele ser composto? Por exemplo, um para o c e outro para o cedilha, daí ele usa os dois para produzir ç?

Neste caso não... esses são os códigos dos caracteres mesmo. Mas UTF-8 consegue fazer composições sim. Por exemplo, você pode colocar acentos em certos caracteres com composição: ŜẌÝ

Esses três caracteres têm códigos: C5 9C (Ŝ - não é "composto"), E1 BA 8C (Ẍ - é "composto") e C3 9D 0A (Ý que também é composto). Para detalhes adicionais:

http://www.ejungleblog.com/2009/05/13/acentuar-ou-nao-acentuar-questao-complicada/
http://www.ejungleblog.com/2009/05/15/complicando-as-coisas-mais-sobre-utf-8/
http://www.ejungleblog.com/2011/03/04/utf-8-wchar_t-ou-outro-formato/