Foros del Web » Programando para Internet » PHP »

asignar charset utf-8 a documento rtf generado con php

Estas en el tema de asignar charset utf-8 a documento rtf generado con php en el foro de PHP en Foros del Web. hola chicos este es mi problema este es el código : Código: <?php header("Content-type: application/msword; charset=utf-8"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Disposition: attachment; filename=test.rtf"); ...
  #1 (permalink)  
Antiguo 14/10/2010, 04:31
 
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 3
Pregunta asignar charset utf-8 a documento rtf generado con php

hola chicos este es mi problema este es el código :
Código:
<?php
header("Content-type: application/msword; charset=utf-8");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Disposition: attachment; filename=test.rtf");
$str=$_POST[editor_v2];
$str = str_replace('\\', "", $str);

echo $str; ?>
os cuento esto es para crear un archivo rtf a partir de texto recojido de CKeditor
el archivo se crea perfectamente el problema es que el texto que recojo es en árabe.
el charset=utf-8 deberia hacer el trabajo y visualizarlo correctamente pero no, solo se ven signos. cuando echo un vistazo al codigo html del archivo rtf el meta pone charset=windows-1251
mi servidor no tiene un value asignado al default_charset. asi que el archivo deberia cojer el que le asigno en el header pero nada.

Última edición por terrakio; 14/10/2010 a las 04:52
  #2 (permalink)  
Antiguo 14/10/2010, 07:49
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: asignar charset utf-8 a documento rtf generado con php

Mira la domentación de la función iconv() de PHP que puede solucionarte el problema, saludos

http://es.php.net/manual/es/function.iconv.php
  #3 (permalink)  
Antiguo 15/10/2010, 02:12
 
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: asignar charset utf-8 a documento rtf generado con php

Nada, lo maximo que he conseguido con iconv es que me cambie el charset a us-ascii, es que el contenido de la variable $str me llega en utf-8 el problema esta cuando se genera el documento
  #4 (permalink)  
Antiguo 15/10/2010, 02:22
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: asignar charset utf-8 a documento rtf generado con php

Postea el contenido de $str para que pueda ver cómo queda la conversión, saludos.
  #5 (permalink)  
Antiguo 15/10/2010, 02:26
 
Fecha de Ingreso: julio-2008
Mensajes: 24
Antigüedad: 15 años, 9 meses
Puntos: 3
Respuesta: asignar charset utf-8 a documento rtf generado con php

el contenido recojido por $str es este طارق y luego en el dicumento .rtf sale así ؕارق
por ejemplo en vez de crear un archivo .rtf y lo envio a un archivo html me sale bien.
  #6 (permalink)  
Antiguo 15/10/2010, 03:07
Avatar de Naguissa  
Fecha de Ingreso: junio-2008
Mensajes: 37
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: asignar charset utf-8 a documento rtf generado con php

Según me parece recordar, los Office (incluído el 2010) usan el charset local de la zona, no UTF8, por defecto.

Además, parece que estás enviando un HTML como RTF. Si es el caso, el meta del idioma está en el HTML, que parece provenir de la base de datos, y está mal ahí.
  #7 (permalink)  
Antiguo 15/10/2010, 09:39
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: asignar charset utf-8 a documento rtf generado con php

Lo de Naguissa suena bien, comprueba las cabeceras. También puedes usar esta classe:

http://www.phpclasses.org/package/1805-PHP-Create-RTF-documents-from-HTML.html

Etiquetas: asignar, charset, documento, rtf, utf
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 06:44.