0

tengo una base de datos que agrega dando clic a un botón en un formulario, al mismo tiempo que me genera un PDF con FPDF, los datos que ingreso al formulario algunos se les debe poner acento y "ñ" ya que se registra su nombre, apellido y un curso, sin embargo cuando se coloca en el PDF me genera signos de interrogación Ejemplo: Mari$a

Mi pregunta es como puedo hacer para que me acepte estos caracteres Mi base de datos esta en cotejamiento utf8_unicode_ci, mi tabla tambien, y mis campos tipo varchar en utf8_spanish_ci , (en la base de datos si me agrega con acentos)

Mi conexion a la BD:

/*Conexión a la Base de Datos*/
$conn = mysqli_connect($db_host, $db_usuario, $db_password, $db_nombre);
$conn->set_charset("utf8");

$nombre = mysqli_real_escape_string($conn, $nombre);
$apellido = mysqli_real_escape_string($conn, $apellido);
$curso = $_POST['curso'];

//mysqli_character_set_name($conn);/* Cosas que he intentado realizar*/
//($conn->set_charset("utf8")) {
//mysqli_character_set_name($conn);
//utf8_decode($curso);
   
    if ($curso == 'ISO 9001:2015 Sistemas de gestión de la calidad') {
        $horas = '8 horas';
    }
    if ($curso == 'ISO 14001:2015 Sistemas de gestión ambiental') {
        $horas = '8 horas';
    }

Mi pdf:

//NOMBRE Y APELLIDO
    $pdf->SetFont('times', 'B', 34);
    $pdf->SetTextColor(59, 144, 155);
    $nombre_completo = $nombre . " " . $apellido;
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 5, '', 0, 1, 'C');
    //$pdf->Cell(0, 0, $nombre_completo, 0, 1, 'C');
    $pdf->MultiCell(0, 0, utf8_decode($nombre_completo), 0, 'C');

 //CURSO
    $pdf->SetFont('times', 'B', 21);
    $pdf->SetTextColor(63, 113, 118);
    //$pdf->Text(117, 85, $res['curp']);
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->Cell(120, 12, '', 0, 1, 'C');
    $pdf->MultiCell(0, 0, utf8_decode($curso), 0, 'C');

Espero me puedan apoyar

  • La cuestión de la codificación tiene que establecerse en cada nivel, de una forma global. Aplicar `utf8_decode` no servirá de nada si por ejemplo no controlas la codificación del documento o del objeto de conexión a la base de datos. Revisa [esta respuesta](https://es.stackoverflow.com/a/59510/29967), es muy probable que tu problema esté cuando creas la conexión. Observo que tienes varias preguntas con títulos en MAYÚSCULAS, evita esa práctica, usando las mayúsculas sólo cuando sean obligatorias. – A. Cedano Aug 29 '20 at 01:15
  • Hola ya la revise e hice lo que dice la respuesta, sin embargo no me funciona – Mayra Ximena Vargas Aug 29 '20 at 05:20
  • Pulsa en [edit] para agregar el código donde te conectas a la base de datos. – A. Cedano Aug 29 '20 at 15:42
  • Ya actualice mi pregunta con el código de la base de datos – Mayra Ximena Vargas Aug 29 '20 at 16:26
  • Al parecer el problema es que `fpdf` usa el juego de caracteres `ISO-8859-1` o `Windows-1252` en sus fuentes. Revisa las respuestas a [esta pregunta](https://stackoverflow.com/q/6334134/5587982). Puedes implementar `iconv` si estuviera disponible. Si vas a trabajar con PDF en varios sitios de tu aplicación podrías resolverlo con una clase que extienda de FPDF y resolver así el problema de una manera definitiva. – A. Cedano Aug 29 '20 at 17:21

0 Answers0