Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Frameworks y PHP orientado a objetos (http://www.forosdelweb.com/f68/)
-   -   Problemas con acentos (http://www.forosdelweb.com/f68/problemas-con-acentos-579122/)

Jesica 23/04/2008 09:40

Problemas con acentos
 
Hola gente!
les comento mi problema....
cuando convierto mi xml a objeto, y quiero recorrerlo, si hay alguna palabra con acento me la toma como null... o pone simbolos raros
les paso el codigo por si no soy muy clara

Código PHP:


//XML
$this->xmlValores="<xml><servicio><nombre>á</nombre></servicio></xml>";

public function 
ingresarServicios()
    {
//acá convierto el xml a objeto
    
$xmlsimplexml_load_string($this->xmlValores);
    
$obj=new Servicios();
    
$obj->setNombre($xml->servicio->nombre);// ya no toma el acento
    
$db=new DB();
    
$db->dbIngresarServicios($obj);
    } 

desde ya les agradezco su ayuda!!

GatorV 23/04/2008 09:52

Re: Problemas con acentos
 
Prueba usar utf8_decode en tu variable, ya que simplexml automáticamente convierte los datos a UTF8.

Saludos.

Jesica 23/04/2008 10:55

Re: Problemas con acentos
 
Muchas gracias GatorV, con eso funciona bien, pero te tengo otra preguntita...
Hay alguna manera de hacerlo mas global? o para cada variable voy a tener que
usar utf8_decode ??
Saludos

GatorV 23/04/2008 11:07

Re: Problemas con acentos
 
Lamentablemente no, ya que la extensión SimpleXML convierte automáticamente la entrada en UTF8.

Saludos.

Jesica 23/04/2008 11:28

Re: Problemas con acentos
 
mmmm no funciona tan bien como crei, si le paso el xml de la manera que mostre antes, funciona genial, si el xml lo armo con los datos que vienen del formulario, me carga otra vez los simbolos raros!!
Tendre que poner el utf8_encode en alguna otra parte???

GatorV 23/04/2008 11:45

Re: Problemas con acentos
 
Así es, tienes que usarlo en las variables que uses para armar tu XML, por ejemplo:
Código PHP:

$xml "<xml><servicio><nombre>" utf8_encode"mivar con acentos`aá" ) . "</nombre></servicio></xml>"

Saludos.

Jesica 23/04/2008 12:38

Re: Problemas con acentos
 
//XML
$this->xmlValores="<xml><servicio><nombre>á</nombre></servicio></xml>";
$this->xmlValores=utf8_encode($this->xmlValores);

//acá convierto el xml a objeto
$xml= simplexml_load_string(u$this->xmlValores);

asi funciona perfecto, cuando pongo como en este caso fijo el valor del xml, pero si intento recibir el valor desde cliente (script que genera el xml y lo envia mediante ajax), me convierte cualquier cosa.
Es decir, el xml del ejemplo, inserta en la base de datos la letra á pero si el mismo xml viene desde el cliente, inserta unos simbolos raros (á)

GatorV 23/04/2008 14:18

Re: Problemas con acentos
 
Checa que tipo de codificación estas recibiendo de tu base de datos.

Saludos.

Jesica 19/05/2008 08:54

Respuesta: Problemas con acentos
 
Hola,
Gracias.
Sigo con el mismo problema, esto es lo que veo en el ddl de la base de datos:

CREATE TABLE `servicios` (
`id` int(11) NOT NULL auto_increment,
`nombre` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

lo mismo para todas las tablas.
Saludos
Jesica

GatorV 19/05/2008 08:57

Respuesta: Problemas con acentos
 
Hola Jesica,

Revisa la codificación de tu pagina web, también tiene que ser UTF8, para que las variables sean enviadas correctamente.

Saludos.

Jesica 19/05/2008 09:23

Respuesta: Problemas con acentos
 
Muchas Gracias
Ya encontre el error, estaba recibiendo un xml sin encoding, le puse el encoding utf-8 al xml que viene del servidor y parece funcionar.
Muchisimas gracias por la disposición y por tu tiempo
Saludos!
Jesica


La zona horaria es GMT -6. Ahora son las 22:16.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.