símbolo incorrecto exportado en fpdf… ñ como à ± ..?

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

preguntado el 09 de enero de 11 a las 09:01

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án codificados -

formulario de base de datos ... pero la gente escribe ñ y termina en fpdf como esos símbolos ... en la base de datos mysql aparece como lo quiero -

4 Respuestas

Tu cadena tiene una codificación incorrecta. Es UTF-8 pero creo que necesitas Latin-1 más o menos ...

Puede usar utf8_decode () en sus cadenas:

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

Respondido el 09 de enero de 11 a las 12:01

hola gracias! ¿Me hago eco de eso? .. como a continuación, ¿después de qué? - NORMA

Tienes que usarlo antes de escribir las cadenas en tu PDF: $your_string = utf8_decode($your_string);. En realidad, directamente después de leer $ _POST: $your_string = utf8_decode($_POST['your_string']); - Floern

esta es mi publicación: $ pdf-> Write (0, "". $ person ["CA"]); debo hacer esto: $ pdf-> Write $ your_string = utf8_decode (0, "". $ person ["CA"]); ???? - NORMA

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

Respondido el 09 de enero de 11 a las 13:01

gracias por responder !! ..¿Como lo instalo? - NORMA

@NORM: De verdad: no tengo ni idea. Pero por lo que he reunido, solo utilícelo en lugar del FPDF normal. Cambie la inclusión y cree una instancia de new UFPDF() clase. - Mario

Yo también he pasado bastante tiempo tratando de 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 personaje similar.

Esto es lo que he usado (tomado de este hilo y otros 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 de maravilla pero do recuerda hacer el number_format($yourval, 2) en la misma línea que el utf8_decode(); ¡O lo arruina!

¡Espero que esto sea útil para algún pobre idiota que, como yo, ha luchado durante algunas horas!

Respondido 10 Feb 12, 23:02

Tuvimos el problema una vez y usamos

utf8_decode("foo bar");

resuelto el problema (depende, por supuesto, si los datos provienen del usuario, una base de datos, ...). No olvide entregar el archivo al usuario en UTF-8 también en el encabezado

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

Respondido el 12 de diciembre de 11 a las 21:12

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.