Problemas com caracteres iso  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Olá a todos.

Tenho um editor de texto no site.
Quando vou enviar um texto com título, moastra esse tipo de caractere:

áá

Eu já mudei a codificação da página que envia e do servlet que trata para iso, mas não resolveu.



Depois ele faz um select do que foi salvo e manda o resultado para a mesma página do editor, então acho que ela também teria que ser iso.

Mas não resolve.

Alguma idéia de como resolver?

[]s

* Edit: troquei o servlet que recebe a requisição, por uma página JSP e mudei a codificação para ISO-8859-1 mas ainda não grava acento no banco de dados.

This message was edited 3 times. Last update was at 24/01/2009 20:50:57


Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Eu me precipitei um pouquinho.

Na verdade são os campos input de um formulário mesmo.

Os dados contento acentos e cedilha são inseridos no banco de dados e retornados como estes símbolos ae: áá

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline

Oi,

você já deu uma olhada nesse tópico?

http://www.guj.com.br/posts/list/12456.java

fw

Sun Certified Java Programmer 5.0
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Ok, vou deixar minha dúvida lá.

[]s

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
Dieval Guizelini
Virtual Machine Man
[Avatar]

Membro desde: 05/07/2006 14:39:44
Mensagens: 570
Localização: Curitiba - PR
Offline

Ou,

não é essa a idéia,

se você ler a thread que te passei, você verá que a informação a página que está o seu formulário deverá:



no seu caso iso-8859-1

o formulário, terá que ter a tag accept-charset:


os arquivos jsp:


No link ainda mostra uma função para converte de iso8859-1 para utf-8.

Você tem que compatibilizar o encoding da sua aplicação com o encoding do seu banco de dados. E verificar se o client de conexão está utilizando o mesmo encoding.

Você deve lembrar que o encoding padrão da linguagem Java é o utf, diferente do php que é o iso-8859-1. Principalmente por essa razão, os caracteres que você está obtendo e a "representação da tradução" dos caracteres especiais do iso em utf.

Faça um teste, pegue a string lida do banco e converta explicitamente para iso antes de apresentar no html:



fw

Ps: isso se o banco estiver em utf, ou o client configurado para utf.

This message was edited 1 time. Last update was at 18/01/2009 08:02:16


Sun Certified Java Programmer 5.0
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Não entendi muito bem este teste mas já resolvi o problema.

Fui fazendo uns testes aqui, adicionando
@charset "ISO-8859-1"; no início de todos os arquivos css,
adicionando accept-charset="iso-8859-1" em todos os forms, mudando o encoding do xml para iso e mudando o encoding das tabelas para utf8.

Antes, eu fiz isso, mas não tudo junto.
Agora resolveu. Acho que eram os arquivos css mesmo, pois isso nunca
aconteceu comigo, mesmo eu usando templates.

Obrigado pela ajuda.
Foi fundamental pra mim.

Qualquer coisa, posto aqui.

[]s a todos.

Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
dark123
JavaEvangelist

Membro desde: 30/04/2008 18:02:02
Mensagens: 315
Offline

Este tópico foi reaberto, pois o problema só foi resolvido no Mozilla Firefox.

Não é ao inserir, é a codificação da página mesmo:


E já no mozilla aparece tudo normal.



* Arquivos que modifiquei:

* web.xml : <?xml version="1.0" encoding="ISO-8859-1"?>

* sun-web.xml: <?xml version="1.0" encoding="ISO-8859-1"?>

* todos os css: @charset "ISO-8859-1";

* JSP: <%@page contentType="text/html" pageEncoding="ISO-8859-1"%>

* html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />

* Tabelas do banco de dados: DEFAULT CHARSET=utf8;



Não entendi o porquê disso entre os dois browsers e como posso resolver.


Uma imagem da real situação:

http://i60.servimg.com/u/f60/11/80/81/44/encodi11.gif

Os caracteres com outra codificação foram inseridos usando o Internet Explorer.
Estou visualizando esta página no Mozilla.
E o css da administração de minha aplicação é bem simples, fui eu mesmo
quem fez, então descarto ele de ser o culpado.


Alguma idéia do que possa ser?


* edit:

Segui como no tutorial, atribuí tudo com UTF-8 mas ainda continua o mesmo problema no IExplorer:


Até adicionei a converção de encoding em meu servlet, mas não deu certo:

This message was edited 1 time. Last update was at 24/01/2009 21:33:43


Esqueceram de avisar que o NetBeans 6.7 e ainda por cima somente com java e JEE era pra quem tivesse mais de 2 GB de RAM
[WWW]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team