PDA

Ver la Versión Completa : Escribir cirilico en un xml.


cirilungol
12-12-2006, 18:41:44
Buenas a tod@s.

Tengo un pequeño problema:
Estoy intentando crear un fichero xml con datos de una BD, y resulta que está controlado por idiomas.

Que es lo que me sucede?. Pues que no puedo guardar el cirilico talcual se ve en el html en el xml, osea esto: цувас pruéba рршщ No lo puedo meter talcual en el xml.

he probado html_entity_decode, htmlentities, get_html_translation_table(HTML_ENTITIES). Y si en pantalla es muuu bonito pero cuando lo quiero meter en un cochino fichero (perdonar por lo de cochino), no se inserta correctamente, solo me da caracteres como los siguientes &# 1094;&# 1091;в&# 1072;&# 1089; pruéba &# 1088;&# 1088;&# 1096;& #1097;

Help please. LLevo con esto una semana entera.

gracias.

Ñuño Martínez
12-12-2006, 19:24:40
Esa es casi la forma correcta de poner código UNICODE en un archivo XML. Lo único que veo mal es el espacio que hay después del carácter sostenido (#), que no debería estar.

He intentado ponerlo y no me ha dejado (lo cambia por caracteres cirílicos). ¿por eso pusiste los espacios? Si es así, entonces está bien.

Si no se muestra bien en tu aplicación, deberías revisar la codificación del fichero (primeras líneas del XML) o del sistema operativo.

cirilungol
12-12-2006, 19:35:30
Lo he puesto todo en espacios para que no me lo tradujera.

De todas maneras es algo del php creo . porque lo he compilado y me da otros caracteres.


Tendré que inventarme algo.

cirilungol
12-12-2006, 20:16:20
No se si habeis hecho la prueba, pero hacerla. Por si es realmente el PHP lo que me esta dando el problema o de lo contrario no sé como solucionarlo.




<?
$l="&# 1094;&# 1091;в&# 1072;&# 1089; pru&eacute;ba &# 1088;&# 1088;&# 1096;& #1097;";
//los espacios hay que quitarselos
$trans = get_html_translation_table(HTML_ENTITIES);
$trans = array_flip($trans);
$original = strtr($l, $trans);
$fpile = fopen("pruebacochina.txt","a+");
fwrite($fpile,$original);
fclose($fpile);
?>


pruebacochina.txt tiene que poder verse con caracteres en Ruso
ya me contareis, estoy que me tiro de las barbas.