Xml ? unicode ! problemas!

10 respostas
LN2EE

e ae pessoal,

estou com um problema com unicode em um xml. tenho um xml que ficam armazenados as lbl e msg, para que no linux os acentos fiquem certos, tenho usar unicode, mas nas lbl e msg vindas do xml, não pega o unicode…

passando a label na mão :

setText(“Usuu00e1rio”);

aparece:

Usuário

nas lbl vinda do xml

setText(xml.lerLabel(3));

aparece:

Usuu00e1rio

sera que o problema esta no encoding no xml ?

alguem pode me ajudar ?

valew galera !

10 Respostas

cv1

Sim, provavelmente tem a ver com o encoding do XML e da plataforma que vc está usando. Quais são eles?

louds

o Problema eh que o encoding que voce usa nas string do java nao funciona em um arquivo xml, ate onde eu sei nao existe um enconding type que faz esse tipo de conversao.

Oque voce precisa eh escrever seu arquivos xml em unicode, ou seja, utf-8/16/32, ASN-1 ou qualquer outro dos trocento mil encodings disponiveis para unicode. Ai basta especificar o encoding type no arquivo xml, e quando carregar tambem eu acho.

LN2EE

o problema acontece no linux, e os encoding que eu tentei são :

esse:
encoding=“iso-8859-1”?

e esse:
encoding=‘utf-8’?

mais nenhum funcionou…

dukejeffrie

C já tentou trocar o \ por \??

[]s

LN2EE

C já tentou trocar o por ??

cara, ja tentei…não deu certo !

dukejeffrie

A única vez que eu mexi com XMLs em portugês, eu coloquei tudo entre CDATAS, assim:

// to dentro de um code pro forum não parsear meu texto. espero que funcione.
<![CDATA[usu\u00e1rio]]>

E o encoding deve ser um UTF mesmo, talvez UTF-16…

No google, achei uma discussão interessante, o oposto ao que vc tá fazendo:

http://forum.java.sun.com/thread.jsp?thread=374424&forum=34&message=1595819

Mas dá pra ter uma idéia de como parsear a coisa, se vc já leu como UTF num Reader, então ela já foi decodificada. Se o XML foi gerado em Java, é melhor vc fazer assim:

  1. usar diretamente os acentos pra escrever o buffer.
  2. Setar o encoding do seu writer para UTF.

Na hora de ler, vc seta o encoding do reader ou do parser, dependendo de onde vc quer que a conversão aconteça.

Boa sorte!!!
P.S.: essa é uma das coisas que depõe contra a idéia de que um humano vai escrever XML. Viagem total… :slight_smile:

louds

pq não usar 1 editor que suporte UTF-8 e editar sem usar caracteres de escape?

LN2EE

e ae ?

bom, valeu a ajuda de todos !

resolvi o problema assim :

<lbl id="Usuário</lbl>

Note que a maneira como se “escapa” os caracteres é
diferente da maneira feita nas strings em Java. Mais detalhes na
especificação do XML www.w3c.org

falow ae[/code]

dukejeffrie

o Jedit suporta, aliás!!!

Uma coisa é quando vc escreve o XML na mão, outra é quando ele é gerado em algum programa. Achei que era gerado…

Agora que vc falou isso, todos os escapes em XML são feitos com essas Entities (ou seja, &something;), e as entidades clássicas do HTML tb valem (&atilde, por exemplo).

[]s!!!

LN2EE

dukejeffrie,

acho que formulei mal minha pergunta, mas vc ajudou bastante

muito obrigado

Criado 20 de maio de 2003
Ultima resposta 21 de mai. de 2003
Respostas 10
Participantes 4