Criei um novo projeto e quero trabalhar com UTF-8 para poder internacionalizá-lo futuramente.
Porém estou tendo 2 semanas de dor de cabeça, e vou mostrar o que fiz até agora:
Acessei muitos fóruns e capitalizei alguns passos para que funcionasse:
1- banco de dados MySQL colocado como UTF-8:
mysql> show variables like '%character%';
+--------------------------+----------------------------------------------------
-----------+
| Variable_name | Value
|
+--------------------------+----------------------------------------------------
-----------+
| character_set_client | utf8
|
| character_set_connection | utf8
|
| character_set_database | utf8
|
| character_set_filesystem | binary
|
| character_set_results | utf8
|
| character_set_server | utf8
|
| character_set_system | utf8
|
| character_sets_dir | C:\Program Files (x86)\MySQL\MySQL Server 5.1\share
\charsets\ |
+--------------------------+----------------------------------------------------
-----------+
Create table:
estado | CREATE TABLE `estado` (
`uf` varchar(2) NOT NULL,
`estado` varchar(30) NOT NULL
ENGINE=InnoDB DEFAULT CHARSET=utf8 |
Servlet passando dados UTF-8:
response.setCharacterEncoding("ISO-8859-1");
Páginas JSP como UTF-8:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
Porém, estou com alguns problemas:
Não consigo inserir os dados no banco com caracteres especiais, exemplo “Maranhão” é inserido como ‘Maranh’
E quando insiro no formato utf-8, ex: ‘Recanto Santo Ant├┤nio’, funciona, ele chega na tela como Recanto Santo Antônio
O problema é que não quero inserir no banco da forma citada acima, até pq terei sempre que fazer insert no console substituindo caracteres especiais pelo seu respectivo utf-8, e ainda na hora da consulta terei q ficar fazendo desta forma.
Alguém tem idéia de como consigo fazer o mysql aceitar caracter especial numa tabela UTF-8?
obrigado antecipadamente pessoal.