Caracteres estranhos no banco de dados - resolvido

12 respostas Resolvido
eclipse
G

Utilizamos o postgres 9.5 e eclpise STS. Mas salvando um registro no banco de dados ele está salvando com caracteres estranhos

banco de dados

O que pode ser ?

12 Respostas

G

Fiz uma consulta no banco e até então está normal

Após fazer a consulta no banco de dados e o retorno via JSON:
após buscar

Ao clica em salvar no html, coloquei um debug no eclipse, olha como está o nome, já esquisito
Como chega na aplicação antes de chegar no banco de dados

M

acredito que não seja uma boa opção salvar no banco com acentuação, caracteres especiais, justamente
por causa deste problema. mas tenta alterar o Collation do banco. veja aqui:
https://www.postgresql.org/docs/9.5/static/multibyte.html

R

O problema não é no seu banco e sim na aplicação.

O banco consegue salvar caracteres especiais, porém sua aplicação não consegue ler.

Coloque o Padrão da sua aplicação UTF -8 que irá aparecer normalmente.

J

Sem pelo menos postar o código HTML e js dessa parte fica mais difícil te ajudarem.

Como @Rodrigo_Marden falou, não tem nada de estranho no banco, no seu próprio print do banco está com acento. Teu front-end que está enviando com problema.

G

Isto que imaginei. O problema está aplicação. Mas o que devo fazer para colocar o padrão da aplicação para UTF-8.

Utilizo SPRING com thymeleaf.

G

Início do HTML

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
	xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
	xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<title>Nota Fiscal Eletrônica de Serviços</title>
<link rel="shortcut icon" th:href="@{/resources/img/iconeDesif.ico}"
	type="image/x-icon" />
<meta charset="utf-8">
<meta name="viewport"
	content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="keywords"
	content="app, responsive, jquery, bootstrap, dashboard, admin">
<link th:include="jsCss/css" th:remove="tag"></link>
<link th:include="jsCss/js" th:remove="tag"></link>
</head>

Configuração do Thymeleaf

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.ViewResolver;
import org.thymeleaf.ITemplateEngine;
import org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect;
import org.thymeleaf.spring4.SpringTemplateEngine;
import org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ITemplateResolver;

import nz.net.ultraq.thymeleaf.LayoutDialect;

@Configuration
public class ThymeleafConfig {

	@Autowired
	private ApplicationContext applicationContext;

	@Bean
	public ViewResolver thymeleafViewResolver(ITemplateEngine templateEngine) {
		ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
		viewResolver.setTemplateEngine(templateEngine);
		viewResolver.setCharacterEncoding("UTF-8");
		return viewResolver;
	}

	@Bean
	public ITemplateEngine templateEngine(ITemplateResolver templateResolver) {
		SpringTemplateEngine templateEngine = new SpringTemplateEngine();
		templateEngine.setTemplateResolver(templateResolver);
		templateEngine.setEnableSpringELCompiler(true);
		templateEngine.addDialect(new LayoutDialect());
		templateEngine.addDialect(new SpringSecurityDialect());
		return templateEngine;
	}

	@Bean
	public ITemplateResolver templateResolver() {
		SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
		templateResolver.setApplicationContext(this.applicationContext);
		templateResolver.setTemplateMode(TemplateMode.HTML);
		templateResolver.setPrefix("/WEB-INF/paginas/");
		templateResolver.setSuffix(".html");
		templateResolver.setCharacterEncoding("UTF-8");
		templateResolver.setCacheable(false);
		return templateResolver;
	}
}

O que pode ser ?

R

http://www.linhadecodigo.com.br/artigo/3534/como-declarar-charset-em-html-e-outras-linguagens.aspx

R

Coloque UTF-8
Não sei se faz alguma diferença de fato, mas por não estar funcionando agora, deve ser isso.

G

Não funcionou. Olhei o código fonte do guj.com.br e está assim:

G

Nem informando assim também:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>

R

Da uma lida ai, mesmo problema que o seu, pode ser que isso resolva.

G
Solucao aceita

Passei a ação de inserir e alterar via ajax/jquery e não deu mais problema

Criado 17 de janeiro de 2018
Ultima resposta 20 de jan. de 2018
Respostas 12
Participantes 4