No se que tan conveniente pueda ser, pero, normalmente cuando defino tablas incluyo la codificacion y tambien "COLLATE", alguna vez me paso que PhpMyAdmin (o fue HeidiSQL?) me cambio algun parametro y surgieron problemas.
Ejemplo:
Código SQL:
Ver originalCREATE TABLE DBPREFIX_config (
cfg_module VARCHAR(10) COLLATE latin1_spanish_ci NOT NULL,
cfg_variable VARCHAR(30) COLLATE latin1_spanish_ci NOT NULL,
cfg_value text COLLATE latin1_spanish_ci NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_spanish_ci;
Ahora, antes de ejecutar cualquier operacion SQL, primero verifico el juego de caracteres del cliente (PhpMyAdmin, HeidiSQL, etc.) y despues inicio los procesos.
P.D. A mi me gusta mas ISO que UTF.