Foros del Web » Programando para Internet » PHP »

Problema con carácteres raros

Estas en el tema de Problema con carácteres raros en el foro de PHP en Foros del Web. Buenas, tengo el siguiente problema a la hora de acceder a campos que tienen carácteres raros como acentos por ejemplo y tanto la bbdd como ...
  #1 (permalink)  
Antiguo 17/06/2013, 14:54
 
Fecha de Ingreso: junio-2004
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 1
Problema con carácteres raros

Buenas, tengo el siguiente problema a la hora de acceder a campos que tienen carácteres raros como acentos por ejemplo y tanto la bbdd como los ficheros los tengo en utf8.
La solución parece que pasa por usar la función utf8_encode cuando voy a leer el dato pero no logro solucionarlo. Os adjunto tanto la clase como parte del php desde donde se llama a dicha clase por si me podéis echar una mano.

Código PHP:
class Municipio {
    
/** 
     *  Método que devuelve los datos de un municipio
     */
     
function getDatosMunicipios($conn) {
        global 
$config;
        
        
$sql mysql_query("SELECT * FROM ".$config['VISTA-MUNICIPIOS']);
        
$rows = array();
        
        while(
$r mysql_fetch_assoc($sql)) {
            
$rows[] = $r;
        }
        
        return (
$rows);
    }

Código PHP:
$municipio = new Municipio ();
$datosMunicipios $municipio -> getDatosMunicipios ($conn);
header('Content-type: text/json');
echo 
json_encode($datosMunicipios); 
Un saludo.
  #2 (permalink)  
Antiguo 17/06/2013, 18:01
Avatar de alvidales  
Fecha de Ingreso: febrero-2012
Mensajes: 108
Antigüedad: 12 años, 10 meses
Puntos: 11
Respuesta: Problema con carácteres raros

intenta con esto antes de mandar la consulta

Código:
mysql_query('SET NAMES utf8') or die(mysql_error());
mysql_query('SET CHARACTER SET utf8') or die(mysql_error());
mysql_query('SET COLLATION_CONNECTION="utf8_general_ci" ') or die(mysql_error());
el asunto es que puede que tengas tu BD en utf8, y tus archivos tambien, más no la comunicación entre php y mysql, y lo que hace esto es realizar la conexión o la comunicación en la misma codificación.

Lo mejor para no batallar es poner estas directivas en el archivo de my.cnf en tu servidor, quedarian algo como esto:

Código:
init_connect='SET collation_connection = utf8_general_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_general_ci
skip-character-set-client-handshake
Esto claro, si tienes acceso al servidor.

Espero te sirva
  #3 (permalink)  
Antiguo 18/06/2013, 01:36
 
Fecha de Ingreso: junio-2004
Mensajes: 10
Antigüedad: 20 años, 6 meses
Puntos: 1
Respuesta: Problema con carácteres raros

Muchas gracias, tu solución ha funcionado a la perfección.

Saludos.

Etiquetas: mysql, raros, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:02.