2011-01-09 19 views
5

No sé cuál es el problema, pero cada vez que llamo a la letra ñ de la función $ _POST lo pone en mi fpdf como ... cualquier idea ¿por qué?símbolo erróneo exportado en fpdf ... ñ como à ± ..?

+0

Este es un problema de juego de caracteres. Necesita agregar más detalles: ¿De dónde provienen sus datos (Base de datos? Formulario?), Cómo está codificado –

+0

formulario de base de datos ... pero la gente escribe ñ y termina en fpdf como esos símbolos ... en la base de datos mysql aparece cómo Lo quiero – NORM

Respuesta

5

Su cadena tiene una codificación incorrecta. Es UTF-8, pero creo que necesitas Latin-1 o menos ..

Puede utilizar utf8_decode() en sus cadenas:

echo utf8_decode("ñ"); // prints ñ 
+0

hey thnx! ¿Hizo eco de eso? .. como a continuación, después de qué? – NORM

+0

Debe usarlo antes de escribir las cadenas en su PDF: '$ your_string = utf8_decode ($ your_string);'. En realidad, directamente después de leer $ _POST: '$ your_string = utf8_decode ($ _ POST ['your_string']);' – Floern

+0

esta es mi publicación: $ pdf-> Write (0, "". $ Person ["CA"]); debería hacer esto: $ pdf-> Escribir $ your_string = utf8_decode (0, "". $ persona ["CA"]); ???? – NORM

1

tuvimos el problema de una vez usando

utf8_decode("foo bar"); 

resuelto el problema (depende, por supuesto, si los datos están viniendo desde el usuario, una base de datos, ...). No se olvide de entregar el archivo al usuario en UTF-8, así como en la cabecera

header("Content-type: application/pdf; charset=utf-8"); 
+0

establecer lo que en el encabezado? – NORM

+0

@NORM ver mi edición por favor. – DrColossos

+0

thnx !!!!!!!!!!! – NORM

2

La solución alternativa sería la de extender FPDF con Unicode (UTF 8) apoyo. Hay un parche para eso: http://acko.net/node/56

+0

thnx para responder !! ..¿Como lo instalo? – NORM

+0

@NORM: Realmente: no tengo ni idea. Pero por lo que he reunido, solo lo usa en lugar del FPDF normal. Cambia el include y crea una instancia de la nueva clase 'UFPDF() '. – mario

+0

thnx !!!!!!!!!!! – NORM

2

Yo también he pasado bastante tiempo tratando de hacer que esto funcione y pensé que la siguiente explicación podría ser útil para otros.

No es necesario escribir sus propias funciones complejas si el único problema es un £/€ o un carácter similar.

Esto es lo que he utilizado (tomado de este hilo y los demás en la red): -

$pdf->SetY(220); // set the y co-ord before output // 
$monthlyRent = utf8_decode("£" . number_format($monthlyRent, 2)); // 2 dec places // 
// previously $monthlyRent is pulled from the MySql db as $array['_monthlyRent']; 
$pdf->Write(5,'Gross monthly rent: ' . $monthlyRent); // outputs £980 or whatever. // 

Funciona un lujo, pero hacer recordar hacer el number_format($yourval, 2) en la misma línea que el utf8_decode(); o ¡mete la pata!

Espero que esto sea útil para un pobre césped, que como yo, ha luchado durante unas horas!

Cuestiones relacionadas