Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Inserção com acentuação.

Boa noite, estou com problemas em inserir palavras com acento no banco de dados utilizando JPA, exemplo:

Combustível fica CombustÃ-vel.

isso se eu inserir através da aplicação, se for através da linha de comando funciona.

4 respostas

Tenta adicionar o encode utf 8 na configuração do seu hibernate, no arquivo persistence.xml:

 <persistence-unit name="Persistence">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.blog.core.model.Blogentry</class>
        <properties>
    // outras properties
    <property name="hibernate.connection.useUnicode" value="true" />
    <property name="hibernate.connection.characterEncoding" value="UTF-8" />
        </properties>
    </persistence-unit>

ou

 <persistence-unit name="Persistence">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <class>com.tugay.blog.core.model.Blogentry</class>
        <properties>
    // outras properties
    <property name="connection.useUnicode">true</property>
    <property name="connection.characterEncoding">utf-8</property>        </properties>
    </persistence-unit>

Dependendo da sua versão do hibernate.

Boa noite André, já fiz e continua do mesmo jeito, tanto no myslq quanto no PostgreSQL.

já tentei fazer uma alteração que todo mundo recomenda que é:

ALTER DATABASE `oleo_app` CHARSET = UTF8 COLLATE = utf8_general_ci

quando eu executo a query eu tenho um retorno de sucesso.

Query OK, 1 row affected (0,01 sec)

mas quando eu olho as configurações no MySQL WorkBench ainda esta CHARSET = UTF8 COLLATE = utf8 default collation

ai eu tentei ir em options file no mysql, e na hora que eu abro a janela ela emite um erro

Configuration file did not contain section [mysqld], so a new one was added.
If that is not correct, please fix the section name in the Server Instance Editor and reopen the administrator.

você tem alguma sugestão?

solução!

Consegui encontrar uma solução, não sei se é a mais correta, mas vai ser essa até eu encontrar outra melhor kkkkk.

em todas as paginas que eu faço a inserção ou consulta de dados eu tive que colocar

<%@ page pageEncoding="UTF-8" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" %>

O que eu achei estranho é ter que colocar os dois, mas se eu não colocar o primeiro, todas as palavras com acento do código html fica desformatada, já se eu retirar a segunda, são os dados do banco que ficam errados, já da forma como esta, tanto no banco quanto na aplicação os dados estão com acentos.

Obs. testado no PostgreSQL e no MySQL, não sei se isso tem alguma relevância.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software