0

Bendo con un problema que aqueja.

Todos los registros que inserto a mi base de datos se guardan con caracteres de este tipo (ó). Este es una (ó). Mi problema es que estoy usando una función para que lo codifique como UTF-8 a la hora de consultar la información pero no me llega procesado. El código que uso es el siguiente:

public function read($orden_id)
{
    $arrayTemporal = $this->ordenController->read($orden_id);
    $this->orden = $this->utf8size($arrayTemporal);
    echo json_encode($this->orden, JSON_PRETTY_PRINT);
}

public function utf8size($d) {
    if (is_array($d)) {
        foreach ($d as $k => $v) {
            $d[$k] = $this->utf8size($v);
        }
    } else if (is_string ($d)) {
        return utf8_encode($d);
    }
    return $d;
} 

Si alguien me puede ayudar estaré muy agradecido. Sin mas por el momento me despido.

  • 1
    Revisa 3 cosas, 1.- Que tu hoja archivo donde estes haciendo el envío de datos este en formato utf8, 2.- que tengas la meta utf8, 3.- cuando consultes la Bd agrega esto: `mysqli_query($conexion,"SET CHARACTER SET 'utf8'");` si es que utilizad mysqli – cignius Mar 02 '18 at 18:57
  • Esto te puede servir de ayuda [enlace](https://es.stackoverflow.com/questions/59489/por-que-el-car%C3%A1cter-inspector-aparece-en-algunos-datos-obtenidos-de-la-base) – A. Palacio Mar 02 '18 at 19:00
  • Este es un error común, revisa esta pregunta https://es.stackoverflow.com/a/59510/38103 y esta otra https://es.stackoverflow.com/questions/134130/c%c3%b3mo-migrar-reparar-datos-insertados-con-codificaci%c3%b3n-incorrecta-en-mysql – Xerif Mar 02 '18 at 20:36

2 Answers2

1
  • Para codificar utf8 en php header('Content-type: text/html; charset=utf-8');
  • Para codificar utf8 en html <head><meta charset="utf-8"></head>
  • Para inserciones y consultas mysql coloca mysql_query("SET NAMES 'utf8'"); donde realizas las conexion a la base de datos o bien cuando realizas la consulta o el insert
  • *Recuerda tambien tener en la base de datos la codificacion utf_general_ci
KeTeMeTo
  • 1,026
  • 5
  • 19
-1

Ahorra s usa mysqli y no mysql - yo he resuelto el problema agregando esto al archivo de conexión:

$enlace= mysqli_connect($servidor,$usuario,$clave,$basededatos);
$enlace-> set_charset("utf8");
Christian
  • 9,428
  • 6
  • 13
  • 34