Foros del Web » Programando para Internet » PHP »

Caracteres especiales en PHP

Estas en el tema de Caracteres especiales en PHP en el foro de PHP en Foros del Web. Hola a todos, tengo un problema para tratar de manera correcta caracteres especiales como tildes, acentos etc, en php. Resulta que tengo una función la ...
  #1 (permalink)  
Antiguo 21/03/2012, 16:37
Avatar de arturohrdez  
Fecha de Ingreso: abril-2011
Ubicación: Puebla
Mensajes: 43
Antigüedad: 13 años, 8 meses
Puntos: 3
Caracteres especiales en PHP

Hola a todos, tengo un problema para tratar de manera correcta caracteres especiales como tildes, acentos etc, en php.

Resulta que tengo una función la cual recibe un mensaje como parámetro, el problema esta en que este mensaje lleva palabras con acentos, al momento de mostrar el mensaje los acentos los muestra con caracteres raros, decidí ponerlo con la notación de HTML -> á pero el momento de mostrar el mensaje se corta ya que al pasarla por la URL el símbolo de ampersand lo reconoce como otra variable en la URL, si alguien me podría ayudar con esto se los agradecería mucho, abajo les dejo el código que utilizo, Gracias.

#Con esta instrucción mando el mensaje por URL:
header("location: modiProd.php?ac=".$_POST["ac"]."&id=".$_POST["id"]."&error=9900&msj=La ficha t&eacute:cnica no cumple con el formato PDF");
////---------------------------------------------------------------------------------
#Con esta otra instrucción recibo el mensaje y le aplico el htmlentities
$mensaje = str_replace("*",htmlentities($param),$regError["mate_nommensa"]);
////---------------------------------------------------------------------------------
#Con esta instrucción muestro el mensaje :
<?php echo RutMesError($_GET["error"],$_GET["msj"]);?>
//---------------------------------------------------------------------------------
  #2 (permalink)  
Antiguo 21/03/2012, 17:09
Avatar de PasosDeGigante  
Fecha de Ingreso: marzo-2012
Mensajes: 1
Antigüedad: 12 años, 9 meses
Puntos: 1
Respuesta: Caracteres especiales en PHP

Prueba con las funciones urlencode() y urldecode() y los acutes.
Si tienes una palabra con acento como "técnica" usarias las funciones asi:

$variable=urlencode("t&eacute;cnica");
que te daria algo como: t%26eacute%3Bcnica
y con la funcion urldecode($varibale) obtienes la palabra pero con el acento, es decir te devolveria: "técnica", el detalle es que no tendrias los acentos como acutes. Usando el htmlentities() convertirias los acentos en acutes de nuevo.

Si te funciona avisanos.

Mas informacion: http://www.php.net/urlencode

Última edición por PasosDeGigante; 21/03/2012 a las 17:19

Etiquetas: caracteres, especiales, html, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:11.