Esta haciendo un pequeño plugin usando los params de las tabla de Joomla para poder tratarlos y devolvérselos correctamente con mi actualización, el problema reside que al usar el json_encode me sustituía las tildes y las ñ por parámetros como estos.

\u003Cfoo\u003E»,»\u0027bar\u0027″,»\u0022baz\u0022″,»\u0026blong\u0026

comencé a usar funciones para averiguar si me estaba llegando correctamente los datos en UTF8 por $_POST

echo «ENCODING=».mb_detect_encoding($string);

Y si todo estaba perfecto, siguiendo algunos consejos de StackOverflow, para forzar la codificación no me devolvía nada de nada.

$json = json_encode($obj, JSON_UNESCAPED_UNICODE);

Hasta que finalmente encontré una función para eliminar los códigos UNICODE

function jsonRemoveUnicodeSequences($struct) {
return preg_replace(«/\\\\u([a-f0-9]{4})/e», «iconv(‘UCS-4LE’,’UTF-8′,pack(‘V’, hexdec(‘U$1’)))», json_encode($struct));
}

Ahora en vez de enviar directamente mi params a json_encode lo envió a la función jsonRemoveUnicodeSequences y listo ya tenemos nuestro insert perfecto y guardando correctamente los datos en las tablas de MYSQL.

 

Función encontrada en  http://www.avoid.org/?p=67

Por admin

Deja una respuesta