Foros del Web » Programando para Internet » PHP »

Simplexml y utf-8

Estas en el tema de Simplexml y utf-8 en el foro de PHP en Foros del Web. Buenas tardes: Estoy realizando una web que tiene que estar traducida a varios idiomas. Para evitar problemas con la codificación utilizo utf-8. Para la parte ...
  #1 (permalink)  
Antiguo 21/12/2009, 07:19
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Simplexml y utf-8

Buenas tardes:

Estoy realizando una web que tiene que estar traducida a varios idiomas. Para evitar problemas con la codificación utilizo utf-8. Para la parte estática voy a utilizar xml y según el xml que cargue se mostrará un idioma u otro. He creado una prueba para ver como funciona y me he encontrado con problemas en la codificación. Os muestro el código php que lee:

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; utf-8" />
<title>Documento sin t&iacute;tulo</title>
</head>
<body>
<?php
include 'example.php';

$xml = new SimpleXMLElement($xmlstr);

echo 
utf8_decode($xml->inicio) . "<br />";
echo 
utf8_decode($xml->contacto);
?>
</body>
</html>
y a continuación el xml:

Código:
<?php
header('Content-Type: text/html; charset=utf-8');
$xmlstr = <<<XML
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<bloque>
<inicio>josé</inicio>
<contacto>Контактная информация</contacto>
</bloque>
XML;
?>
Los acentos en español si los muestra bien, pero los caracteres rusos los muestra como '?'. Gracias por adelantado
  #2 (permalink)  
Antiguo 21/12/2009, 08:25
serser
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Simplexml y utf-8

Para trabajar con UTF-8 también debes guardar los archivos con ese formato. Una vez que hagas esto (si es que no lo has hecho ya) debes borrar las llamadas a la función ut8_decode, ya que no son necesarias.
  #3 (permalink)  
Antiguo 21/12/2009, 08:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 2
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Simplexml y utf-8

Gracias por tu respuesta. Ya tengo el archivo codificado en UTF-8 y eso no es suficiente. Después de googlear un buen rato, he encontrado una solución. He añadido la línea "default_charset = "utf-8"" al archivo php.ini. A continuación, como tu has comentado, he eliminado las llamadas a la función utf8_decode y ahora funciona. De todas formas si hubiese alguna otra solución también la estudiaría, porque tengo más proyectos en el servidor que no están en utf-8y me prodría ser un problema cambiarlo.

De todas formas gracias Serser.
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 00:02.