Utilizamos o postgres 9.5 e eclpise STS. Mas salvando um registro no banco de dados ele está salvando com caracteres estranhos
O que pode ser ?
Utilizamos o postgres 9.5 e eclpise STS. Mas salvando um registro no banco de dados ele está salvando com caracteres estranhos
O que pode ser ?
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:
Ao clica em salvar no html, coloquei um debug no eclipse, olha como está o nome, já esquisito
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
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.
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.
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.
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 ?
Coloque UTF-8
Não sei se faz alguma diferença de fato, mas por não estar funcionando agora, deve ser isso.
Nem informando assim também:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Da uma lida ai, mesmo problema que o seu, pode ser que isso resolva.
Passei a ação de inserir e alterar via ajax/jquery e não deu mais problema