Tudo o que você precisa saber sobre character encoding!

ASCII? Unicode? ISO-8859-1? XYZ-6996? BINGO!!
Se você está perdido no meio de tanto padrão de codificação de caracteres e não sabe o que fazer no meio disso tudo, então você veio ao tópico certo!! Leia o artigo do Joel Spolsky sobre char-encoding em http://www.joelonsoftware.com/articles/Unicode.html e seja uma pessoa mais feliz e saudável.

Argh! Joel Spolsky!!

Ja tive muitos problemas com isso utilizando tecnologia WebSpeed do Progress, com Java por enquanto ainda nao tive problema mesmo porque ainda nao fiz nada muito grande com Java.

Eu também pensava que isso era besteira, coisa simples.
Realmente é quando voce trabalha apenas com 1 única plataforma e 1 único encoding em todas pontas do seu sistema, então tudo automagicamente funciona!

Porém agora trabalhamos com 2.5 plaformas (.5 devido a mesma estar em 2 pontos devida e indevidamente configurada) e encodings diferentes em várias pontas do sistema. Ou seja, de repente passamos da sorte para uns 4-5 encodings diferentes! Olha que acredito que essa situação poderia piorar ainda mais…

Resolvi, ate onde a burrice me permitiu (alheia lógico), utilizando UTF-8 ou informando quando era outro ostensivamente de ponta a ponta , ou seja, onde tinha texto envolvido, explicitamente informavamos o enconding, utilizando UTF-8 sempre que possivel. Os lugares mais comuns são: DBs (mysql é meio burrinho com isso), arquivos textos (xml, fontes java, etc), streams de texto (http principalmente).

Depois de lutar bastante com isso, acredito que finalmente entendi direito oque e porque de encondings, o artigo do Joe ajudou muito.

Finalmente, cheguei a conclusão que esse é mais um daqueles assuntos que ou a pessoa entende ou entende completamente errado.

Verdade… eu tinha entendido completamente errado…

eu achava que o encoding de uma string já vinha embutido nela…

E eu tb achava que UTF era um só, e que a coisa funcionava meio Huffmann, com a árvore expandindo conforme necessário usando os bits de cima…

Aliás, meio burro mesmo mexer com UFT-32 pra escrever em inglês, um baita desperdício… acho que o futuro é aprender direito mesmo a usar encodings e fazer a aplicação independente deles (independente no sentido de que ela usa encodings o tempo todo, então pra ela qq um serve).

Esse artigo me deixou bravo com UTF-8, eu achando que tava usando algo moderno, e é um encoding tão (in)útil quando iso-8859-1…

A melhor frase é “não existe plain text”… : ))

[]s!

Muito bom … mostrei pra um pessoal que programa a mais de 10 anos hehe … foi legal ver as sobrancelhas subindo e decendo enquanto liam :smiley:

Estou tendo problemas em uma aplicacao web desenvolvida no windows pro linux.
A onde eu coloco acentuacao.
No windows funciona tranquilo, quando jogo o deploy no Linux, comecam os problemas.
Por exemplo se eu vou cadastrar um usuario.
Coloco nome = usuário e ele transforma em usu?rio.
E é assim com todos os acentos.
Já tentei colocar UTF-8, ISO-8859-1 nas jsp, mas nada faz funcionar.
O Linux é um CentOS 4 .
O Tomcat é o Tomcat 5.0.28.

Configure o encoding da tua JVM/distro linux

Como posso fazer isso?

SilvioNetto: Clique Aqui!

gui. :wink:

ja usei o -Dfile-encode
ja tentei mudar no javac -encode

:arrow: http://www.guj.com.br/posts/list/0/11166.java#139925

gui. :wink:

[quote=gui]SilvioNetto: Clique Aqui!

gui. :wink:[/quote]

Não sabe, não responde.

Utilizando a dica que eu passei,
já encontrei a resposta… :smiley:

E você ainda está com o problema? :mrgreen:
Miss Simpatia… :twisted:

gui. :wink:

[quote=gui]Utilizando a dica que eu passei,
já encontrei a resposta… :smiley:

E você ainda está com o problema? :mrgreen:
Miss Simpatia… :twisted:

gui. :wink:[/quote]

Falar q encontrou é facil …quero ver provar…

ok, vou morder a isca, mas que fique claro,
consultoria: 150R$ a hora pra aprender a usar o Google. :mrgreen:

[size=32][color=red]vi /etc/sysconfig/i18n[/color][/size]

isso ai eu já fiz…não funcionou …
e tbm ja tentei colocar charset nas paginas jsp e nos arquivos xml …
tambem nao funcionou…
consegui em uma aplicacao simples hoje, criando um filtro no tomcat pois a aplicacao é J2EE com Hibernate, Struts feita no Jdev e rodando no Tomcat 5.0.30 e Sistema Operacional CentOS 4.
Criando uma classe q converte o charset e declarando como filtro no Tomcat…
Convertendo o charset para o padrao atual dos Sistemas Operacional Linux o charset: UTF-8
O fonte separece com o abaixo:
e foi achado no link:
http://www-106.ibm.com/developerworks/java/library/j-tomcat/?open&l=101,t=grj,p=TomcatTricks
A intencao é adaptar a aplicacao ao sistema operacional e nao o sistema operacional a aplicacao…

IE Filter com.ibm.devworks.filters.IEFilter IE Filter /*

Set Character Encoding
filters.SetCharacterEncodingFilter

encoding
UTF-8

Set Character Encoding action link: http://www.junlu.com/msg/49726.html Amanha quero ver se vai funcionar na aplicacao mesmo...

Via de regras problemas com encoding são frustrantes, dão um senhor trabalho para resolver e as variaveis do seu ambiente são mais significativas que a ajuda que podemos dar aqui. Então manerem pessoal, por que se fosse facil não seria tão doloroso resolver.

Variavel de ambiente não é pois a mesma aplicacao rodando no OC4J funciona, quando passo pro Tomcat nao funciona.

Pessoal humildemente vou pedir a colaboração de vocês para entender melhor esse negócio de encodings.
Dei uma lida rápida e gostaria de tirar algumas dúvidas.

  • Os microcomputadores atuais se baseam na tabela ASCII certo ?
  • Existem variações dessa tabela para diferentes Locais. Ex: na china o código 10 pode ser um caracter na rússia outro. Isso seria o encoding ?
  • O unicode seria um esforço para padronizar os códigos ?

Sempre foi meio obscuro para mim…