Foros del Web » Programando para Internet » PHP »

Problema con tildes y htmlentities

Estas en el tema de Problema con tildes y htmlentities en el foro de PHP en Foros del Web. Estoy desarrollando una aplicación web en varios idiomas. Tengo un archivo configuracion.php que tiene algo así Código PHP: <?php session_start (); $idiomas_permitidos  = array( 'es' , ...
  #1 (permalink)  
Antiguo 08/07/2011, 04:54
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Problema con tildes y htmlentities

Estoy desarrollando una aplicación web en varios idiomas.

Tengo un archivo configuracion.php que tiene algo así

Código PHP:
<?php
session_start
();
$idiomas_permitidos = array('es','en','eus');
$lenguaje = isset($_SESSION['idioma']) ? $_SESSION['idioma'] : 'es';


include_once(
"lenguajes/".$lenguaje."/".$lenguaje.".php");

?>
Y luego un ejemplo del archivo lenguajes/es/es.php


Código PHP:
<?php
$idioma
['mandamsg'] = 'Mandanos un mensaje desde la pagina web';

$idioma['facebook'] = 'Siguenos en facebook';

$idioma['taller_upv'] = 'Taller en la facultad de magisterio (UPV)';


foreach(
$idioma as $clave => $palabra)
    
$idioma[$clave] = htmlentities($palabraENT_QUOTES"UTF-8");

?>
El caso es que cuando pongo alguna tílde, por ejemplo "Síguenos en facebook", no aparece nada si intento hacer:

echo $idioma['facebook']


Alguien sabe por qué?.


Gracias!
  #2 (permalink)  
Antiguo 08/07/2011, 05:14
f0n
 
Fecha de Ingreso: abril-2009
Mensajes: 54
Antigüedad: 15 años
Puntos: 1
Respuesta: Problema con tildes y htmlentities

Si cambio el juego de carácteres a Europeo Occidental claro que funciona, pero lo que me gustaría sería mantener el UTF-8, por obvias razones.

un utf8_encode y _decode quizás?

Un saludo!
  #3 (permalink)  
Antiguo 08/07/2011, 05:31
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Problema con tildes y htmlentities

Yo he diseñado una función que actua en funión del tipo de codificación de la cadena que recibe. Yo la uso para recuperar datos (de una bd) con diferente codificación.

La cuelgo por si ha alguien más le puede servir.

saludos,


Código PHP:
function decode($string)
{
    if(
mb_detect_encoding($string'UTF-8'true))
       return 
utf8_decode(stripcslashes($string));
   else
       return 
htmlspecialchars(stripcslashes($string));

__________________
Tu álbum de cromos online!!

Etiquetas: html, htmlentities, tildes
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




La zona horaria es GMT -6. Ahora son las 08:21.