Foros del Web » Programando para Internet » PHP »

mostrar caracteres correctamente

Estas en el tema de mostrar caracteres correctamente en el foro de PHP en Foros del Web. Hola necesito ayuda a cerca de mostrar caracteres griegos en un pagina. Los datos están almacenados en una base de datos mysql: DATABASE `griego` /*!40100 ...
  #1 (permalink)  
Antiguo 29/10/2009, 07:19
 
Fecha de Ingreso: octubre-2009
Mensajes: 26
Antigüedad: 14 años, 5 meses
Puntos: 0
mostrar caracteres correctamente

Hola necesito ayuda a cerca de mostrar caracteres griegos en un pagina.

Los datos están almacenados en una base de datos mysql:

DATABASE `griego` /*!40100 DEFAULT CHARACTER SET latin1 */;
TABLA: griego MYISAM, juego de caracteres greek

Los datos almacenados en el campo están escritos en griego y son estos..

Α α Alfa Β β Beta
Γ γ Gamma Δ δ Delta
Ε ε ?psilon Ζ ζ Dseta
Η η Eta Θ θ Theta
Ι ι Iota Κ κ Kappa
Λ λ Lambda Μ μ My
Ν ν Ny Ξ ξ Xi
Ο ο ?micron Π π Pi
Ρ ρ Ro Σ σ Sigma
Τ τ Tau Υ υ ?psilon
Φ φ Fi Χ χ Ji
Ψ ψ Psi Ω ω Omega
Letras obsoletas
Digamma Stigma
Heta
San Sho
Qoppa Sampi

A la hora de realizar una select y mostrarlos en una pagina , los caracteres griegos son reemplazados por ??????

Cabeceras de la pagina:
...
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
...

he probado con cambiar el charset, iconv, htmlentities, etc... y no consigo que se vean correctamente.

¿Alguien me puede ayudar? Muchas gracias.
  #2 (permalink)  
Antiguo 29/10/2009, 07:27
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: mostrar caracteres correctamente

Lo que sucede es que la base de datos la tienes declarada latin1 y en PHP estas tratando de declarar que es utf-8, te sugiero leer esto para que puedas lograr convertirlo a utf-8 todo http://www.adviesenzo.nl/examples/ph...l_charset_fix/ No sé si el utf-8 reconozca los caracteres griegos pero trata a ver si lo logras y nos dejas saber como te fue.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 29/10/2009, 08:30
 
Fecha de Ingreso: octubre-2009
Mensajes: 26
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: mostrar caracteres correctamente

Gracias, he solucionado parcialmente el problema :)

añandiendo

mysql_query("SET NAMES 'utf8'");

obtengo en pantalla los caracteres en griego.. pero...

necesitraria hacer un replace del tipo..

$texto=str_replace('Α','&Alpha;',$texto);
$texto=str_replace('α','&alpha;',$texto);
$texto=str_replace('β','&beta;',$texto);
$texto=str_replace('Β','&Beta;',$texto);
....
para mostrar en lugar de β ---> &beta;

lo que ocurre es que en la busqueda no encuentra dicho carácter (β) ¿como podría hacer este replace?

Muchas gracias de nuevo.
  #4 (permalink)  
Antiguo 29/10/2009, 08:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: mostrar caracteres correctamente

Cita:
Iniciado por Javiercg_ Ver Mensaje
[...] lo que ocurre es que en la busqueda no encuentra dicho carácter (β) ¿como podría hacer este replace? [...]
¿para que hacer una función que ya existe??

htmlentities()
http://php.net/htmlentities
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 29/10/2009, 08:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 26
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: mostrar caracteres correctamente

Hola, porque htmlentities no funciona...

esta es la salida del codigo fuente sin htmlentities:

Α α Alfa Β β Beta
...

esta es la salida después de aplicarle un htmlentities:

&Icirc;� &Icirc;&plusmn; Alfa &Icirc;� &Icirc;&sup2; Beta
...

hace una conversion rara y no tira.
  #6 (permalink)  
Antiguo 29/10/2009, 08:48
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: mostrar caracteres correctamente

Puede ser porque no le estás especificando el charset adecuado. En el tercer parámetro debes especificarle el charset, por defecto usa ISO-8859-1
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 29/10/2009, 08:54
 
Fecha de Ingreso: octubre-2009
Mensajes: 26
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: mostrar caracteres correctamente

Funcionó!!!

puse:

htmlentities($texto_griego_bd,ENT_NOQUOTES,'UTF-8')

y perfecto.

GRACIAS a TODOS.
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 07:59.