Comunidad de diseño web y desarrollo en internet online

Desesperado con acentos

Citar            
MensajeEscrito el 03 Ago 2010 07:04 am
Hola:

He leido y leido, pero no soy capaz de solucionarlo.

El caso es que recojo una variable que llega por un form:

Código PHP :

$destinatario = $HTTP_POST_VARS["destinatario"];


Hasta ahí creo que bien.

El problema es que hago un switch para, dependiendo del valor de la variable, asigar un correo:

Código PHP :

switch ( $destinatario) {
    case "Jesús Domínguez":
         $correo = "[email protected]";
        break;


El primer problema es que aunque la variable llega con acentos, al comparar, hace caso omiso.

Entonces intento solucionarlo quitando los acentos con:

Código PHP :

function elimina_acentos($cadena){
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
return(strtr($cadena,$tofind,$replac));
}
$destinatario= elimina_acentos( $destinatario);


Pero esto me da como salida lo siguiente:

1. Sin poner ningun charset ni header: La variable de entrada= Jesús Domínguez la de Salida=JesA�A�s DomA�A�nguez

2. Poniendo como cabecera del php

Código PHP :

header('Content-Type: text/html; charset=utf-8'); 
hace lo mismo que el punto 1.

3. Poniendo como cabecera del php

Código PHP :

header('Content-Type: text/html; charset=iso-8859-1'); 
la variable de entrada ya está mal = Jesús Domínguez

Total, que estoy desesperado...

Gracias

Por noumeno

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2010 07:29 am
No entiendo:

Hago el codigo en un fichero php aparte y funciona bien... algo me hace pensar que es al recoger la variable del formulario...



Código PHP :

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Documento sin título</title>
</head>

<body>

<?php
//header('Content-Type: text/html; charset=utf-8');

   
        
   $destinatario ="Jesús Domínguez";
 

   echo ($destinatario. "<br>");



function elimina_acentos($cadena){
$tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
$replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn";
echo ("entra <br>");
return(strtr($cadena,$tofind,$replac));
}
$destinatario= elimina_acentos( $destinatario);
   echo ($destinatario. "<br>");
?>
</body>
</html>

Por noumeno

7 de clabLevel



 

firefox
Citar            
MensajeEscrito el 03 Ago 2010 06:26 pm
si pues no te funca de esa forma tbn tienes el utf8_encode que funciona de 100

Por talcual

686 de clabLevel



 

Colombia

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.