Codificação de Acento JSF

Bom dia,
Pessoal estou com o velho problema de acentuação, Estou com um codigo de um outro programador e no mesmo, ao enviar uma mensagem o cliente recebe os acentos todos codificados.

exemplo:

“rárárá” para “ráááááa”

porem fiz os seguintes testes:

dentro do head já coloquei

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

e nos outputs e inputs já adicionei o

escape="false"

nenhum deles surgiram efeito…alguem poderia me dizer onde estou errando?

desde ja agradeço…

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
	  xmlns:ui="http://java.sun.com/jsf/facelets"
	  xmlns:h="http://java.sun.com/jsf/html"
	  xmlns:f="http://java.sun.com/jsf/core">
	<head>	
		<title>
			<ui:insert name="pageTitle">Envie para um amigo</ui:insert>
		</title>
		<style>
			body {margin:0px;}
			td {font-family:arial; font-size:11px; color:#322423;}
			.forminput {font-family:arial; font-size:12px; color:#000; width:146px; height:20px; border:1px solid #E1DCCE}
			textarea {font-family:arial; font-size:12px; color:#000;width:315px; height:65px; border:1px solid #E1DCCE}
		</style>

		<script type="text/javascript">
			function valida(){
				pega_url();
				removeAcento(1);
				removeAcento(2);
				removeAcento(3);
				document.f1.submit();				
				return true;
			}
			
			function pega_url(){
				url = opener.location.href;
				document.getElementById("url").value += url
			}
	
			function removeAcento(id){
				if (id == 1){
					var string = document.getElementById('nome').value;
				}
				if (id == 2){
					var string = document.getElementById('sobrenome').value;
				}
				if (id == 3){
					var string = document.getElementById('nome_amigo').value;
				}
		
		    	string = string.replace("´",".");
		    	string = string.replace("`",".");
		   	 	string = string.replace("^",".");
		    	string = string.replace("~",".");
		    	string = string.replace("¨",".");
			    string = string.replace("%",".");
			    string = string.replace("!",".");
			    string = string.replace("@",".");
			    string = string.replace("#",".");
			    string = string.replace("$",".");
			    string = string.replace("¬",".");
			    string = string.replace("&amp;",".");
			    string = string.replace("*",".");
			    string = string.replace("§",".");
		     	string = string.replace(" ",".");
			
				if(id == 1){
					document.getElementById('nome').value = string;
				}
				if(id == 2){
					document.getElementById('sobrenome').value = string;
				}
				if(id == 3){
					document.getElementById('nome_amigo').value = string;
				}
			}
	
		</script>
		
	</head>
	<body bgcolor="#FFFFFF">
		<f:view locale="#{locale.currentLocale}">
			<form name="f1" action="http://www.vidaeconsciencia.com.br/egvc.enviaEmailAmigo.logic" onSubmit="return valida();" method="post">
				<input type="hidden" id="url" value="" name="emailAmigo.url" />
				<table border="0" cellpadding="0" cellspacing="0">
					<tr>
						<td colspan="3">
							<img src="http://www.vidaeconsciencia.com.br/images/email/img-top.gif" width="368" height="19" alt="" border="0" />
						</td>
					</tr>
					<tr>
						<td>
							<img src="http://www.vidaeconsciencia.com.br/images/email/img-left.gif" width="13" height="312" alt="" border="0" />
						</td>
						<td width="342" valign="top">
							<h:graphicImage value="http://www.vidaeconsciencia.com.br/images/email/img-envieamigo.gif" rendered="#{locale.portuguese}"></h:graphicImage>
							<h:graphicImage value="http://www.vidaeconsciencia.com.br/images/email/img-envieamigo_en.png" rendered="#{locale.english}"></h:graphicImage>
							<br/>
							<table border="0" cellspacing="0" width="342" bgcolor="#F9F6EF" style="height: 277px;">
								<tr>
									<td valign="top">
										<div style="padding:13px">
											<span id="titmat"></span>
										</div>
					
										<div>
											<img src="http://www.vidaeconsciencia.com.br/images/email/img-trackamigo.gif" width="340" height="3" alt="" style="padding:5px 0 5px 0;" border="0"/>
										</div>
				
										<table border="0" cellpadding="0" cellspacing="0">
											<tr>
												<td width="169" style="padding:13px 0 0 13px;">
													<h:outputText value="#{msgs['enviar.amigo.from']}"></h:outputText>
												</td>
												<td style="padding:13px 0 0 0;">
													<h:outputText value="#{msgs['enviar.amigo.sobrennome']}"></h:outputText>
												</td>
											</tr>
											<tr>
												<td style="padding:0 0 0 13px;">
													<input type="text" name="emailAmigo.nome" class="forminput" id="nome" />
												</td>
												<td>
													<input type="text" name="emailAmigo.sobrenome" class="forminput" id="sobrenome"/>
												</td>
											</tr>
											<tr>
												<td width="169" style="padding:7px 0 0 13px;">
													<h:outputText value="#{msgs['enviar.amigo.noome']}"></h:outputText>
												</td>
												<td style="padding:7px 0 0 0;">
													<h:outputText value="#{msgs['enviar.amgio.email']}"></h:outputText>
												</td>
											</tr>
											<tr>
												<td style="padding:0 0 0 13px;">
													<input type="text" name="emailAmigo.nome_amigo" class="forminput" id="nome_amigo"/>
												</td>
												<td>
													<input type="text" name="emailAmigo.email_amigo" class="forminput"/>
												</td>
											</tr>
											<tr>
												<td width="169" style="padding:7px 0 0 13px;">
													<h:outputText value="#{msgs['enviar.amigo.msg']}"></h:outputText>
												</td>
											</tr>
											<tr>
												<td style="padding:0 0 0 13px;" colspan="2">
													<textarea name="emailAmigo.mensagem"></textarea>
												</td>
											</tr>
											<tr>
												<td colspan="2" style="padding:4px 0 0 13px;">
													<div style="padding-top:7px; color:#587593; float:left">
														<h:outputText value="#{msgs['enviar.amigo.required']}"></h:outputText>
													</div>
													<div style="float:right">
														<a href="javascript:window.close();">
															<h:graphicImage style="border:0;" value="http://www.vidaeconsciencia.com.br/images/email/bt-cancelar.gif" rendered="#{locale.portuguese}"></h:graphicImage>
															<h:graphicImage style="border:0;" value="http://www.vidaeconsciencia.com.br/images/email/bt-cancelar_en.png" rendered="#{locale.english}"></h:graphicImage>
														</a>
														<a href="javascript:valida();">
															<h:graphicImage style="border:0;" value="http://www.vidaeconsciencia.com.br/images/email/bt_enviar_materia.gif" rendered="#{locale.portuguese}"></h:graphicImage>
															<h:graphicImage style="border:0;" value="http://www.vidaeconsciencia.com.br/images/email/bt_enviar_materia_en.png" rendered="#{locale.english}"></h:graphicImage>
														</a>
													</div>
												</td>
											</tr>
										</table>
									</td>
								</tr>
							</table>
						</td>
						<td>
							<img src="http://www.vidaeconsciencia.com.br/images/email/img-right.gif" width="13" height="312" alt="" border="0"/>
						</td>
					</tr>
					<tr>
						<td colspan="3">
							<img src="http://www.vidaeconsciencia.com.br/images/email/img-bottom.gif" width="368" height="13" alt="" border="0"/>
						</td>
					</tr>
				</table>
			</form>
		
			<script type="text/javascript">
				var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
				document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
			</script>
			<script type="text/javascript">
				try {
					var pageTracker = _gat._getTracker("UA-6922886-1");
					pageTracker._trackPageview();
				} catch(err) {}
			</script>
		</f:view>
	
	</body>
</html>

cria um filtro:

public class CharacterEncodingFilter implements Filter
{

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
        throws IOException,
            ServletException
    {
        req.setCharacterEncoding("UTF-8");
        resp.setCharacterEncoding("UTF-8");
        chain.doFilter(req, resp);
    }

    public void init(FilterConfig filterConfig)
        throws ServletException
    {
    }

    public void destroy()
    {
    }
}

e mapeia ele no web.xml

<filter>
		<filter-name>Character Encoding Filter</filter-name>
		<filter-class>.........CharacterEncodingFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>Character Encoding Filter</filter-name>
		<servlet-name>Faces Servlet</servlet-name>
	</filter-mapping>

resolveu meu problema.

Ok vou testar…
mais uma duvida, será que não tem algo que seja alterado somente na XHTML ao invés de mexer com as classes? pois esse sistema está em produção, e para fazer este teste agora vai ficar meio ruim, pois vou ter q restartar meu tomcat para atribuir os valores alterados, e agora é critico… =\