Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/07/2018, 02:37
sotadeoros
 
Fecha de Ingreso: junio-2007
Mensajes: 80
Antigüedad: 16 años, 10 meses
Puntos: 1
Caracteres no validos al importar datos de Mysql

Buenas

Tengo una base de datos mysql, y en ella una tabla que se llama Almacén, tipo Myisam y codificada como utf8_general_ci , y en esta tabla, un campo llamado "calle" que esta codificado como utf8_spanish_ci.

Bien, pues si abro la tabla con phpmyadmin, los datos escritos en este campo se ven correctamente, las ñ, los acentos, etc.

ahora quiero extraer una calle y presentarla en html y no hay forma de que me lo presente adecuadamente.

aqui el codigo:

Código PHP:
<?php
session_start
();
if(!isset(
$_SESSION['contra'])){
  
header("Location:../index.php");
}
header("Content-Type: text/html;charset=utf-8");
$usuario $_SESSION["usuario"];
$contra $_SESSION["contra"];
require_once 
"conn.php";
$connect->set_charset("utf8");
$result2=mysqli_query ($connect"SELECT CODIGO,COMPANIA,CALLE,POBLA,PROVIN,CP,TELEFONO,RUTA,C_ALM from almacen where codigo='$contra';");
$num_total_registros2 mysqli_num_rows($result2);
if (
$num_total_registros2>0) {
  
?>
  <!DOCTYPE html>
  <html>
  <head>
    <title>Zona Clientes</title>
    <link rel="stylesheet" type="text/css" href="css/formatos.css">
    <script type="text/javascript" src="css/mio.js"></script>
  </head>
  <body onload="nobackbutton();">
    <img src='imagenes/logoemp.jpg' width='143' height='53'/>
    <table border="1" width="100%" bgcolor="#6495ED" bordercolor="#000000" bordercolorlight="#000000" bordercolordark="#000000">
      <tr>
        <td width="100%">
          <h1>ELEGIR SUCURSAL</h1>
        </td>
      </tr>
    </table>
    <p> &nbsp; </p>
    <div style="text-align:center;">
      <table border="2" style="margin: 0 auto;">
        <?php
        
echo "<tr> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>NOMBRE</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>DIRECCION</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>POBLACION</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>PROVINCIA</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>C.POSTAL</b></center></font></td> \n";
        echo 
"<td bgcolor='#ee7b43'><font color='white' face='Verdana'><center><b>SELECCION</b></center></font></td> \n";
        echo 
"</tr> \n";
        
$nCont=0;
        while (
$row2 mysqli_fetch_array($result2)){
     
?>
          <tr>
            <form action="ponsesion.php" method="post"><!-- abre tu form -->
              <td><left><?php echo trim($row2["COMPANIA"]);                   ?><input type="hidden" name="compania" value="<?php echo trim($row2["COMPANIA"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["CALLE"]))); ?><input type="hidden" name="calle_alm" value="<?php echo trim($row2["CALLE"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["POBLA"]))); ?><input type="hidden" name="pobla_alm" value="<?php echo trim($row2["POBLA"]);?>"></left></td>
              <td><left><?php echo ucwords(strtolower(trim($row2["PROVIN"])));?><input type="hidden" name="provin_alm" value="<?php echo trim($row2["PROVIN"]);?>"></left></td>
              <td><center><?php echo trim($row2["CP"]);                       ?><input type="hidden" name="cp" value="<?php echo trim($row2["CP"]);?>"></center></td>
              <td colspan=5 align=center><b><input type=submit value='Confirmar' style="background-color:#61a11a; color:#fff;"></b></center></td>
              <input type="hidden" name="telefono" value="<?php echo trim($row2["TELEFONO"]);?>">
              <input type="hidden" name="ruta" value="<?php echo trim($row2["RUTA"]);?>">
              <input type="hidden" name="almacen" value="<?php echo trim($row2["C_ALM"]);?>">
            </form>
          </tr>
          <?php
          $nCont 
+= $nCont+1;
        }
        echo 
"</table> \n";
        echo 
"</div> \n";
      }
      else {
        echo 
"<META HTTP-EQUIV=REFRESH CONTENT='0; URL=ponsesion.php'>";
      }
      
?>
    </table>
  </div>
</body>
</html>
he probado a poner :
<META http-equiv=Content-Type content="text/html; charset=ISO-8859-1"> en la cabecera, y nada
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> y tampoco

tambien utf8_encode, utf8_decode,

cuando me presenta en pantalla:
Código PHP:
             <td><left><?php echo ucwords(strtolower(trim($row2["CALLE"]))); ?><input type="hidden" name="calle_alm" value="<?php echo trim($row2["CALLE"]);?>"></left></td>
depende si pongo utf8_encode u otra cosa van variando los caracteres raros, es decir unas veces en la ñ aparece una interrogacion, otras veces un simbolo ascii raro etc.

Que puede ser?

Saludos