Hola buenas.Pues acabo de terminar de hacer un PHP super básico, que básicamente sirve para aquella gente tan despistada como yo, que no haya usado SET NAMES utf8 antes, haya cambiado de idea, y haya jodido todo.
Básicamente, si tenéis algún carácter que no sea UTF-8 y al cambiar la cotejación de PHP o MySQL se haya jodido todo, aquí podréis volver todo UTF-8.
Aquí el código:
<?php
//Functions
function strposa
($haystack, $needles=array(), $offset=0) { foreach($needles as $needle) {
$res = strpos($haystack, $needle, $offset); if ($res !== false) $chr[$needle] = $res;
}
if(empty($chr)) return false; }
//Valores de conexion
$localhost = '';
$dbuser = '';
$dbpass = '';
$dbname = '';
//Conexión + UTF-8
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>';
$unwanted_array = array( 'Š' , 'š' , 'Ž' , 'ž' , 'À' , 'Á' , '' , 'Ã' , 'Ä' , 'Å' , 'Æ' , 'Ç' , 'È' , 'É' , 'Ê' , 'Ë' , 'Ì' , 'Í' , 'Î' , 'Ï' , 'Ñ' , 'Ò' , 'Ó' , 'Ô' , 'Õ' , 'Ö' , 'Ø' , 'Ù' ,
'Ú' , 'Û' , 'Ü' , 'Ý' , 'Þ' , 'ß' , 'à' , 'á' , 'â' , 'ã' , 'ä' , 'å' , 'æ' , 'ç' ,
'è' , 'é' , 'ê' , 'ë' , 'ì' , 'í' , 'î' , 'ï' , 'ð' , 'ñ' , 'ò' , 'ó' , 'ô' , 'õ' ,
'ö' , 'ø' , 'ù' , 'ú' , 'û' , 'ý' , 'ý' , 'þ' , 'ÿ' );
$sql = "SHOW TABLES FROM toomanyd_database";
if (!$resultado) {
echo "Error de BD, no se pudieron listar las tablas\n";
}
$curfila = $fila[0];
$resultado1 = mysqli_query($conn, "SHOW COLUMNS FROM `$curfila`"); if (!$resultado1) {
}
$number = $anum['last'];
for($i = 1; $i <= $number; $i++)
{
$field = $fila['Field'];
$content = $acon['content'];
if($content != null) {
if($sanitized != $content && strposa($sanitized, $unwanted_array, 1)) {
mysqli_query($conn, "UPDATE `$curfila` SET `$field`='$sanitized' WHERE id='$i'"); }
}
}
}
}
}
}
}
}
echo '</body>
</html>';
?>
Puede que haya errores puesto que uso mysql, y he hecho una conversión rapida a mysqli... :-(NOTA: Haced una copia de seguridad de vuestra base de datos.
NOTA2: Debéis guardar el archivo en UTF-8 (no es necesario, pero una recomendación)
Un saludo.