PHP - Problema con Charset

 
Vista:
sin imagen de perfil

Problema con Charset

Publicado por José Luis (7 intervenciones) el 07/03/2013 13:33:10
Hola Foro,

Me presento, soy José Luis y estoy aprendiendo PHP y MySQLi.
Este es mi primer mensaje en este foro.

Tengo un pequeño script que realiza una comparación entre 2 tablas e indica las diferencias.
Las tablas están en UTF8, pero al recorrerlas mediante un array me cambia la codificación, en la tabla se visualiza bien pero no en el array.

¿Cómo lo soluciono?

Gracias de antemano.

El código es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Diferencias de productos</title>
</head>
<body>
<?php
ini_set('display_errors', true);
error_reporting(E_ALL ^ E_NOTICE);
date_default_timezone_set('Europe/Madrid');
define('USUARIO','root');
define('BDATOS','pruebas');
define('CONTRA','');
 
echo "Iniciando proceso: " . date("H:i:s");
echo '<br/>';
$mysqli = new mysqli("127.0.0.1", USUARIO, CONTRA, BDATOS);
if ($mysqli->connect_errno)
{
	echo "Fallo al conectar a MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
	exit();
}
else {
    echo "Conectado correctamente<br>";
}
 
/* cambiar el conjunto de caracteres a utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Error cargando el conjunto de caracteres utf8: %s\n", $mysqli->error);
} else {
    printf("Conjunto de caracteres actual: %s\n", $mysqli->character_set_name());
}
 
// Tabla mk_temporary
 
$select_1 = $mysqli->query("SELECT * FROM mk_temporary_joseluis");
$select_2 = $mysqli->query("SELECT * FROM mk_temporary_alfonso");
$coincidencias = 0;
$diferencias = 0;
//busco en todos los resultados de select_1
while($data = $select_1->fetch_array()) {
    $data2 = $select_2->fetch_array() ;
    if (($data['idtemp'] == $data2['idtemp'])
        and ($data['Sku'] == $data2['Sku'])
        and ($data['Partnumber'] == $data2['Partnumber'])
        and ($data['Categoria'] == $data2['Categoria'])
        and ($data['Fabricante'] == $data2['Fabricante'])
        and ($data['Nombre'] == $data2['Nombre'])
        and ($data['Url'] == $data2['Url'])
        and ($data['Coste'] == $data2['Coste'])
        and ($data['Pvp'] == $data2['Pvp'])
        and ($data['Stock'] == $data2['Stock'])
        and ($data['Stocksolic'] == $data2['Stocksolic'])
        and ($data['Eta'] == $data2['Eta']))
        //and ($data['Ubicacion'] == $data2['Ubicacion']))
    {
        $coincidencias++;
    }
    else
    {
        $diferencias++;
    }
}
echo "TABLA mk_temporary <br>Existen ".$coincidencias." coincidencias y " .$diferencias." diferencias<br><br>";
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

Problema con Charset

Publicado por xve (6935 intervenciones) el 07/03/2013 16:28:20
Hola José, la verdad es que no entiendo porque no pone esos caracteres que me comentas... nos puedes poner un ejemplo de lo que hace?

El php se ejecuta en un servidor que esta en utf-8?... recuerda que el php se ejecuta en el servidor...

Si nos puedes comentar...
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