Foros del Web » Programando para Internet » PHP »

Problema con el charset=utf-8 (creo)

Estas en el tema de Problema con el charset=utf-8 (creo) en el foro de PHP en Foros del Web. Hola a todos, mis conocimientode php son nulos. Necesitaba poner un texto aleatorio cada vez que se carga una página y recorriendo FdW en contré ...
  #1 (permalink)  
Antiguo 29/09/2010, 15:43
Avatar de Yaguare  
Fecha de Ingreso: octubre-2006
Ubicación: Jerusalem humahuaqueña
Mensajes: 214
Antigüedad: 17 años, 6 meses
Puntos: 8
Problema con el charset=utf-8 (creo)

Hola a todos, mis conocimientode php son nulos. Necesitaba poner un texto aleatorio cada vez que se carga una página y recorriendo FdW en contré este código que funciona perfecto:

<?php
$FileRand_Txt = file("rand.txt");
$linea = $FileRand_Txt[array_rand($FileRand_Txt)];
echo $linea;
?>

Toma alguna línea del archivo rand.txt y la imprime. Ahora bien si en esa línea hay alguna palabra con tilde (acento) se muestra ese rombo con el signo de interrogación, no sé como se llama; me ha sucedido que cuando esto pasaba era debido a la ausencia o fallos en la codificación charset=utf-8, claro que en html. ¿En php sucede lo mismo o tengo que tranformar algo para que las palabras se muestren correctamente tildadas?
muchas gracias desde ahora a quién pueda ayudarme.
  #2 (permalink)  
Antiguo 29/09/2010, 15:51
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema con el charset=utf-8 (creo)

necesitas forzar a que esos caracteres se conviertan a UTF8, guardando el archivo en esa codificación o puedes intentar con utf8_encode, en caso extremos utilizar las librerías iconv o multibyte, suerte
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 29/09/2010, 16:21
Avatar de Yaguare  
Fecha de Ingreso: octubre-2006
Ubicación: Jerusalem humahuaqueña
Mensajes: 214
Antigüedad: 17 años, 6 meses
Puntos: 8
Respuesta: Problema con el charset=utf-8 (creo)

Muchas gracias por responder maycolalvarez. Y gracias por brindarme la solución, el utf-8_encode hace que la cosa funcione perfecta!!
  #4 (permalink)  
Antiguo 30/09/2010, 10:16
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Problema con el charset=utf-8 (creo)

Esta es una buena función para no destruir cadenas codificandolas dos veces (a veces pasa):

Código PHP:
Ver original
  1. function fixEncoding($in_str) {
  2.     $cur_encoding = mb_detect_encoding($in_str) ;
  3.     if($cur_encoding == "UTF-8" && mb_check_encoding($in_str,"UTF-8"))
  4.         return $in_str;
  5.     else
  6.         return utf8_encode($in_str);
  7. };

Etiquetas: Ninguno
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 12:42.