Campo textarea insere caracteres estranhos no banco de dados  XML
Índice dos Fóruns » Java Enterprise Edition (Java EE)
Autor Mensagem
dark123
JavaEvangelist

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

Olá,

olha eu de novo.

Desta vez, estou com problemas (este sempre foi um problema que não consigo resolver) ao enviar caracteres do textarea de um formulário, por exemplo, ao banco de dados.

Sempre que o usuário pula uma linha, insere um caracter não reconhecido pelo banco.

Devo modificar a codificação do banco? será preciso fazer isso? (está no padrão - latin1).

Para mostrar melhor o problema, segue uma imagem:




Já tentei mudar a variável para TEXT mas não resolveu.
E só acontece isso quando ele dá um enter ou tab.

Poderiam me dar uma forcinha?

[]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]
nextuser
JavaEvangelist
[Avatar]

Membro desde: 15/12/2008 11:21:08
Mensagens: 400
Localização: São Paulo, Brazil
Offline

mas quando vc recupera o valor do banco para mostrar no view ele apresenta estes caracteres estranhos?

esse caractere que vc mostrou na imagem representa quebra de linha mas provavelmente o SW que está utilizando para vizualizar os dados da base de dados está te mostrando que tem uma quebra de linha, creio que quando vc recuperar o dado da base para um String isso ai vai virar um \n.

oq vc pode fazer como teste é antes de gravar na base mandar logar no console por exemplo o valor da caixa, provavelmente ele vai mostrar direitinho com quebra de linha.

Hudson Afonso
Consultor
http://penseinteligente.com.br/

Pense Inteligente:
A Inteligente é uma consultoria em tecnologia da informação, que atua na comercialização e implementação de produtos de software corporativos. Com foco no cliente, compreendemos a necessidade de nossos clientes e adicionamos valor para a condução de seus negócios.
Focus:
SPED, Saneamento de Cadastro, Saneamento de Dados, Cadastro de Clientes e Fornecedores, Cadastro da Receita Federal, CNPJ, CPF, Cadastro, Correção de Cadastro para o SPED, Exigências legais para o SPED, Cadastro CNPJ, Certidão CNPJ, Comprovante CPF, Consulta CPF, Consulta Serasa, Consulta SPC, Nota Fiscal Eletrônica, SPED Contábil, SPED Fiscal
[Email] [WWW]
LuizRocha
JavaChild
[Avatar]

Membro desde: 07/07/2006 01:38:04
Mensagens: 109
Localização: Fortaleza - CE
Offline

Deixa eu ver se eu entendi:

Um usuário usa uma interface gráfica para inserir dados textuais num banco de dados. Quando esse usuário aperta TAB ou ENTER, é inserido no database caracteres não alfa-numéricos, e isso está te incomodando.

Bem, algo assim já aconteceu comigo: quando eu ia ver no banco o que havia sido inserido, existiam caracteres estranhos em letras acentuadas ou no lugar dos "ç". No entanto, quando a minha aplicação recuperava os dados do banco, esses caracteres estavam normais novamente. Quando eu dava um jeito de eles ficarem normais no banco, eles ficavam esquisitos na aplicação.

Talvez algo semelhante esteja acontecendo com você. Observe se os caracteres voltam ao normal quando a aplicação os recupera do banco de dados.

Caso isso não aconteça, ainda existe uma solução mais "gambiarrística": use um método da classe String que substitua os caracteres esquisitos pelos desejados. Assim, para cada String lida do banco de dados, você pode substituir aquele caractere esquisito pelo '\n' e o outro pelo '\t'.

Pesquise na documentação API java sobre a classe String. Estou certo de que ela tem um método que substitui caracteres.

Espero ter sido de ajuda. Boa sorte.

Amar é pôr-se no lugar do outro e agir.
dark123
JavaEvangelist

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

Então deve mostrar na aplicação com um \n ou \t mesmo, mas não estou utlilizando o out.println, então é por isso que nem chega a recuperar os valores com estes caracteres.

Eu também insiro por PreparedStatement, então uso setObject, o que deveria inserir os caracteres normalmente.

Também mudei a codificação das duas páginas, a que envia e a que recebe o form mas não resolveu.

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]
LuizRocha
JavaChild
[Avatar]

Membro desde: 07/07/2006 01:38:04
Mensagens: 109
Localização: Fortaleza - CE
Offline

Então deve mostrar na aplicação com um \n ou \t mesmo

Experimente pra ver. Creio que irá pular a linha e dar a tabulação, mesmo que você não esteja usando out.println.

Esse tipo de problema não deve existir, muita gente usa Java e banco de dados, inclusive inserindo dados textuais onde linhas são saltadas.
Você deve estar perto da solução, só precisa procurar melhor - quem sabe exemplos?

Boa sorte!

Amar é pôr-se no lugar do outro e agir.
dark123
JavaEvangelist

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

E como posso fazer isso?

Já tentei pegar os dados convertendo a codificação do banco mas não deu certo.

Então como tenho que fazer ?

[]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]
dark123
JavaEvangelist

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

É... agora uma porção bem grande...



Justo nas quebra de linhas.

Isso impede que os dados sejam recuperados pela aplicação =/

Não sei como resolver...

This message was edited 1 time. Last update was at 17/12/2008 07:31:46


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

Percebi como os dados eram recuperados.
Bom, a quebra de linha sempre vai ficar assim no banco de dados, pois até mesmo o software que uso pra programar, (RJ TextEdit) usa símbolos para quebra de linha.

Então o problema está ao recuperá-los.

Deixa eu explicar melhor como o problema acontece:

Na verdade no textarea está tudo bem, acontece que eu uso um editor de textos na aplicação, onde ele é em javascript.

Já troquei de editor umas 5 vezes e todos possuem este problema ao receber estes dados do banco com quebra.

Texto retornado





Editando em um textarea - seria impossível um usuário
que não entenda de html editar assim





Então resolvi colocar javascript de editores mas...



E descobri o porque disso:

peguei o código fonte da página já processada pelo browser (html) e vi que dentor do editor, o texto ssía da linha:

var editor1 = new EDITOR();
editor1.create('<P>Digite seu texto aqui.... </P>
<P>Digite seu texto aqui.... Digite seu texto aqui.... Digite seu texto aqui.... Dig
');



Alguém que usa editores em javascript para acessar banco de dados, poderiam me ajudar?

obrigado.

[]s

This message was edited 1 time. Last update was at 17/12/2008 10:17:19


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 » Java Enterprise Edition (Java EE)
Ir para:   
Powered by JForum 2.1.8 © JForum Team