0

Hola tengo el siguiente problema, en mi pag web no me funciona el utf-8 si lo tengo asignado pero me sale de la siguiente manera, aveces me aparece bien y otras asi como la imagen, de ahi le doy en acciones para ver el pdf y me sale en blanco pense que era por algun otro error pero los que no tienen caracteres raros (asentos) si me salen o sera del lado del pdf?

Este es el codigo

de la tabla en donde

anteriormente me salia los caracteres especiales bien

y con la modificiaon del function

ya me salen extraños Ñ

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Mercancias - Container All Risk</title>
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <link rel="shortcut icon" href="favicon.ico" />
    <link href="font-awesome/css/font-awesome.css" rel="stylesheet">
    <link href="css/plugins/dataTables/datatables.min.css" rel="stylesheet">
    <!-- Toastr style -->
    <link href="css/plugins/toastr/toastr.min.css" rel="stylesheet">
    <!-- Gritter -->
    <link href="js/plugins/gritter/jquery.gritter.css" rel="stylesheet">
    <link href="css/animate.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">
</head>
<body class="fixed-sidebar skin-3">

<div id="wrapper">
    <?php require_once("inc/menu.php"); ?>
        <div id="page-wrapper" class="gray-bg dashbard-1">
        <div class="row border-bottom">
        <nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
        <div class="navbar-header">
            <a class="navbar-minimalize minimalize-styl-2 btn btn-success " href="#"><i class="fa fa-bars"></i> </a>
        </div>
            <ul class="nav navbar-top-links navbar-right">

                <li>
                    <a href="inc/logout.php">
                        <i class="fa fa-sign-out"></i>Cerrar sesi&oacute;n
                    </a>
                </li>
            </ul>
        </nav>
        </div>
         <div class="datos_ajax_delete"></div><!-- Datos ajax Final -->
         <div class="datos_ajax_dato"></div>
            <div class="row  border-bottom white-bg dashboard-header">
                <h1 style='font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;font-weight: 400;color:#000;'>Mercancias</h1>

            </div>
                <div class="table-responsive" style="padding-top:20px;">
                    <a href="nuevo-certificado.php" class="btn btn-outline btn-success" style="margin-bottom:20px;">Generar Certificado</a>
                    <table class="table table-striped table-bordered table-hover dataTables-example" >
                    <thead>
                        <tr>
                            <th>FOLIO</th>
                            <th>FECHA</th>
                            <th>FACTURA</th>
                            <th>ASEGURADO</th>
                            <th>COSTOS</th>
                            <th>IMPORTE ASEGURADO</th>
                            <th>ACCIONES</th>
                        </tr>
                    </thead>
                    <tbody>
<?php
if($_COOKIE["lvl"]==1){
    $result=query("SELECT V.idViaje, V.idCliente, UCASE(V.Cliente) AS 'Cliente', V.rfc, V.moneda, V.mercancia, V.importe, V.TipoOperacion, V.FechaAlta, V.detalles, V.TipoTransporte, V.FechaSalida, V.FechaLlegada, V.folio, V.porigen, V.eorigen, V.corigen, V.pdestino, V.edestino, V.cdestino, V.poliza, V.cuota, V.prima, V.gastosexp, V.iva, V.total FROM merca V LEFT JOIN clientes C ON V.idCliente=C.idCliente ORDER BY V.idViaje DESC LIMIT 0,1000");
}else{
    $result=query("SELECT V.idViaje,V.Referencia,V.CartaPorte,C.RazonSocial AS Cliente,V.Destino,V.Contenedor1,V.Contenedor2,V.Contenedor3,V.FechaAlta FROM viajes V LEFT JOIN clientes C ON V.idCliente=C.idCliente WHERE V.idCliente=".$_COOKIE["idUsuario"]." ORDER BY V.idViaje DESC LIMIT 0,200");
}
$mercancias="";
while($row = mysqli_fetch_array($result)) {
if($row["idViaje"]<>'' and $row["idCliente"]<>'')
{
    $mercancias=$row["idViaje"] . " - " . $row["idCliente"];
}else
{
    $mercancias=$row["idViaje"];
}
?>
                        <tr class="gradeA" style="text-align:center;">
                            <td><?php echo $row["idViaje"]; ?></td>
                            <td><?php echo $row["FechaAlta"]; ?></td>
                            <td><?php echo $row["folio"]; ?></td>
                            <td><?php echo $row["Cliente"]; ?></td>
                            <td><?php echo "$ "; ?><?php echo $row["total"]; ?></td>
                            <td><?php echo "$ "; ?><?php echo number_format($row["importe"],2, '.', ','); ?></td>
                            <td style="width:16%">
                                <a title="Pdf" href="poliza-mercancia.php?id=<?php echo $row["idViaje"]; ?>" target="_blank" class="btn btn-dark btn-bitbucket btn-sm"><i class="fa fa-file-pdf-o "></i></a></td>
  • 1
    Esto está de más: ``, deja únicamente la otra etiqueta meta. Si sigue sin funcionar, dinos qué tipo de conexión a la base de datos usas y si le estás seteando el charset a la conexión. [Puedes ver aquí](https://es.stackoverflow.com/a/59510/29967) para más detalles. – A. Cedano Apr 22 '19 at 22:35
  • Ya la quite y sigue igual, si tengo conexión lo cual la mando a llamar con un require_once("inc/functions.php") la cual ya tengo configurada la conexion function getMyConection($conexion) {global $link; $db_host = ""; $db_name = ""; $db_user = ""; $db_pass = ""; $link = mysqli_connect($db_host, db_user, $db_pass, $db_name) or die("No se pudo conectar a la base de datos..."); return $link; mysqli_query("SET NAMES utf8"); } – Isaias Alejandro Sanchez Apr 22 '19 at 22:50
  • 1
    Debes saber que en cualquier función todo lo que está después del `return` no se ejecuta, por tanto no pongas nunca nada después. En este caso la configuración de charset no se hará nunca por ese mismo motivo. Además, tampoco indicas de forma explícita el objeto de conexión. Ponlo así, usando [la función específica de mysqli para setear el charset a la conexión](https://www.php.net/manual/es/mysqli.set-charset.php): **`mysqli_set_charset($link, "utf8"); return $link;`** Observa que el `return` debe ser siempre la última línea de la función. – A. Cedano Apr 22 '19 at 22:54
  • Genial @A.Cedano ya me muestra los PDF pero ahora en la tabla me aparece asi los caracteres Ñ (Ñ) – Isaias Alejandro Sanchez Apr 22 '19 at 23:09
  • 1
    Quita las imágenes y pon el texto del código tal cual para revisarlo. Es complicado analizar un código en imágenes (para este tipo de preguntas las imágenes sólo entorpecen más que ayudar). Y también trata de mostrar un `var_dump` de los datos sin pasarlos por PDF a ver si ahí se muestran bien y es un problema de la librería que maneja los PDF. – A. Cedano Apr 22 '19 at 23:11
  • Deja modifico mi pregunta pero el error ya no es en el pdf es en una talba que tengo en mi pag web, el pdf ya quedo al 100 si me aparece con caracteres Ñ ó í – Isaias Alejandro Sanchez Apr 22 '19 at 23:14
  • Pon el código entero para revisarlo, no se sabe qué encabezados tienes exactamente, además veo unas llamadas que haces a `lang/eng.php` que no sé que significan realmente. Como ya dije, si lo que hay es una imagen es complicado analizar tu código. – A. Cedano Apr 22 '19 at 23:16
  • [Continuemos el debate en el chat](https://chat.stackexchange.com/rooms/92765/discussion-between-isaias-alejandro-sanchez-and-a-cedano). – Isaias Alejandro Sanchez Apr 22 '19 at 23:19
  • Ya modifique la pregunta con el codigo – Isaias Alejandro Sanchez Apr 22 '19 at 23:19
  • Quedamos en que esto había que quitarlo: ``, pero sigo viendo que está ahí ¿? Además, falta código, no veo dónde creas el PDF ¿? – A. Cedano Apr 22 '19 at 23:22
  • Por que en el localhost me muestra bien los caracteres Ñ ó í ú á etc y en la web no? tengo el mismo codigo pero igual ahorita quito – Isaias Alejandro Sanchez Apr 23 '19 at 14:18
  • Ya quite la y sigue apareciendo igual, la ultima linea del codigo es la del pdf " target="_blank" class="btn btn-dark btn-bitbucket btn-sm"> – Isaias Alejandro Sanchez Apr 23 '19 at 14:44
  • Revisa la configuración del charset a nivel de PHP entonces, como se explica en la respuesta que te refiero en uno de los anteriores comentarios. Tampoco me has dicho que pasa si imprimes el contenido como tal usando un var_dump, sin convertirlo a PDF. En el código anterior (imagen) recuerdo que había una parte donde se creaba el PDF. – A. Cedano Apr 23 '19 at 17:49

0 Answers0