PHP - utf8 no me funciona en los select del php

 
Vista:
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 05/04/2018 11:55:20
Hola a todos, espero que me podáis dar alguna otra opción posible que funcione

Mi problema es que tengo un formulario con un select el cual recojo los datos de la base de datos y en él tengo un valor con acento.

En el php cuando lo muestro no me recoge bien el caracter.

He echo esta prueba en el php

1
2
3
4
5
6
if (!$mysqli->set_charset("utf8")) {
    printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
    exit();
} else {
    printf("Conjunto de caracteres actual: %s\n", $mysqli->character_set_name());
}

y Me muestra "Conjunto de caracteres actual utf8"

Por lo tanto entiendo que la configuración de la base de datos esta bien, pero luego el php lo muestra mal

He probado con
1
header("Content-Type: text/html;charset=utf-8");
1
mysqli_query("SET NAMES 'utf8'");
1
$mysqli->set_charset("utf8");
1
$mysqli_set_charset($mysqli,"utf8");

y todos fallan espero que me podáis dar mas opciones

Gracias a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por xve (6935 intervenciones) el 05/04/2018 15:14:38
Hola Luis, tienes puesto el charset en la cabecera de la pagina web?

1
<meta charset="utf-8">
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 06/04/2018 11:14:27
Esa etiqueta si que la tiene la pagina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santiago
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Santiago (10 intervenciones) el 05/04/2018 15:19:44
En el dato que recojas de la consulta simplemente lo codificas con el: base64_encode

Ej:

1
$dato= utf8_encode($resultadoconsulta['CAMPOTABLA']);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 06/04/2018 12:11:01
Gracias por la respuesta

En cuanto lo prueba os comento
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de italo
Val: 920
Bronce
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por italo (150 intervenciones) el 06/04/2018 13:22:23
Hola

1
2
3
@Luis
 
Por lo tanto entiendo que la configuración de la base de datos esta bien, pero luego el php lo muestra mal

puedes escribir el codigo de la pagina en la cual lo ves mal y una imagen de ejemplo para poder entender mejor.

salud2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 10/04/2018 16:39:53
2018-04-10-17_36_51-Vehiculos-de-ocasion-_-AuraCar-Citroen


1
2
3
4
5
6
7
8
9
10
11
12
if ($resultado = $mysqli->query($consulta)) {
    while ($row = mysqli_fetch_assoc($resultado)) {
        $mlo = strtolower($row["mlocode"]);
        if (isset($submit) && !empty($modelo) && $mlo != $modelo) {
            printf('<option class="moval" value="' . $row["mlocode"] . '">' . $row["mlocode"] . '</option>');
        } else if (isset($submit) && empty($modelo)) {
            printf('<option class="moval" value="' . $row["mlocode"] . '">' . $row["mlocode"] . '</option>');
        }/*else{
            printf('<option class="moval" value="' . $row["mlocode"] . '">' . $row["mlocode"] . '</option>');
        }*/
    }
}

Gracias Santiago por tu respuesta

1
$dato= utf8_encode($resultadoconsulta['CAMPOTABLA']);

Pero no me ha funcionado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santiago
Val: 25
Ha aumentado su posición en 3 puestos en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Santiago (10 intervenciones) el 12/04/2018 13:41:56
Cundo lo vayas a mostrar o al definirla le agregas la codificacion


$mlo = utf8_encode($row["mlocode"]);

- printf('<option class="moval" value="' . $row["mlocode"] . '">' . utf8_encode($row["mlocode"]) . '</option>');


Intentalo asi
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por gonzalo (615 intervenciones) el 11/04/2018 17:32:03
ok, vamos a ver si te puedo ayudar.

este procedimiento funciona UNICAMENTE si guardaste la informacion con acentos en la base de datos, esto es, si al abrir la base de datos puedes ver que ahi estan los acentos registrados correctamente entonces este procedimiento deberia funcionar, si tienes "garabatos" en lugar de acentos entonces debe mostrar los registros exactamente como estan en la base de datos (con garabatos en lugar de acentos)

1 revisa las propiedades de la base de datos, define "Collation" como utf8_spanish_ci.

si no se arregla entonces e problema pudiera ser la pagina en si.

2 en todas las paginas que tengan encabezado (inicia como html) agregale esta linea jusgo abajo del <head>

1
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

en las paginas que tengan php sin encabezados de html (como los jquery) agrega esta linea justo despues de <?php

header("Content-Type: text/html;charset=utf-8");

si usas sesiones entonces pon la linea despues de abrir la session.

3 si no funciona entonces el problema pudiera ser la conexion con la base de datos.

si estas usando mysqli entonces agrega esta linea justo despues de hacer la conexion.
mysqli_query("SET NAMES 'utf8'");

si estas usando pdo entonces usa este formato

1
2
3
4
5
6
7
$conn = new PDO
(
    'mysql:host=DireccionIp;dbname=NombreDeLaBaseDeDatos',
    "Usuario",
    "password",
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
);

hasta aqui deberia funcionar (almenos para mi si funciono pero estoy usando pdo).

avisanos si funciona.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por gonzalo (615 intervenciones) el 11/04/2018 17:36:28
olvide comentar

debes hacer los 3 cambios, si haces un cambio y lo qutas para hacer el otro no va a funcionar.

1 collaton en la base de datos
2 header en todos lso archivos con encabezado html y header() en lo sque son unicamente con php
3 conexion con la base de datos.

suerte!

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 16/04/2018 14:08:58
En la base de datos lo he cambiado en todos estos lados

2018-04-16-14_59_13-isp.centos.local-_-localhost-_-phpMyAdmin-4.5.4.1deb2ubuntu2

2018-04-16-15_02_35-isp.centos.local-_-localhost-_-web_auracar-_-Kcmz0710_vehiculos-_-phpMyAdmin-4.5

2018-04-16-15_04_03-isp.centos.local-_-localhost-_-phpMyAdmin-4.5.4.1deb2ubuntu2

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Añadido header


2018-04-16-15_04_52-C-Users_Luis_Desktop_buscador-ajax_buscador-ajax.php-Sublime-Text-UNREGISTER

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

y Añadido el SET NAMES


2018-04-16-15_06_21-C-Users_Luis_Desktop_buscador-ajax_buscador-ajax.php-Sublime-Text-UNREGISTER

resultado el mismo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 20
Ha aumentado su posición en 5 puestos en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Simon (6 intervenciones) el 17/04/2018 19:31:25
prueba a poner: mysqli_set_chaset('nombre conexion','utf8')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 85
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por Luis (33 intervenciones) el 24/04/2018 15:54:50
Me respondo a mi mismo dando la solución

1
$mysqli->set_charset('utf8');
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

utf8 no me funciona en los select del php

Publicado por xve (6935 intervenciones) el 24/04/2018 19:03:33
Gracias por comentarlo Luis!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar