Projeto UTF-8

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.

Vê se um desses te ajuda:





Creio que o último resolva.

Marcelo, muito obrigado pela resposta.

Enfim funcionou, vou postar o que era pra ajudar quem passou por este problema.

Eu utilizava o client mysql do cmd do windows. Se execurtamos o comando abaixo, podemos ver o tipo de código

C:\Users\Renan>chcp Página de código ativa: 850

850 se refere à multilinguagem latin1.
Logo, os meus dados estavam entrando com latin1.

Baixei o Mysql workbench que contém o Query Browser e passei a conseguir inserir dados com caracteres especiais na tabela UTF-8 e como o projeto inteiro está trabalhando com este tipo de dado, chegou no JSP corretamente.

Obrigado novamente por expandir o horizonte Marcelo!
abraços