Los charset o `codificación de caracteres` sirven para trasladar el alfabeto `humano` a binario, de forma que la computadora pueda `entender` lo que se está ingresando. Dado que existen muchos lenguajes en la humanidad también existen muchos charsets ideales para cada caso en particular. Cada uno de estos charsets está preparado para soportar mejor cierto tipo de caracteres específicos de cada idioma (chino, español, ruso, etc.) y, a la vez, tienen ciertas limitaciones para con caracteres ajenos, ante este tipo de situación se ideo la estandarización de charsets y se crearon los charsets unicode, del que UTF-8 es parte.character-set-server=utf8 collation-server=utf8_unicode_ci default-character-set=utf8 default-collation=utf8_unicode_ci
mysql_query('SET NAMES \'utf8\'');CREATE TABLE tabla( ID int(9) NOT NULL AUTO_INCREMENT, campo1 int(15) NOT NULL DEFAULT 0, campo2 varchar(100) DEFAULT NULL, PRIMARY KEY (ID) ) TYPE=MyISAM;
CREATE TABLE tabla( ID int(9) NOT NULL AUTO_INCREMENT, campo1 int(15) NOT NULL DEFAULT 0, campo2 varchar(100) DEFAULT NULL, PRIMARY KEY (ID) ) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;
) y supondremos que tu tabla se llama `original`, entonces en tu archivo .sql deberás tener las siguientes QUERY's:-- creamos la tabla `gemela`: CREATE TABLE gemela( ID int(9) NOT NULL AUTO_INCREMENT, campo1 int(15) NOT NULL DEFAULT 0, campo2 varchar(100) DEFAULT NULL, PRIMARY KEY (ID) ) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- ahora importamos todos los datos de la tabla `original` -- en la `gemela`: INSERT INTO gemela SELECT * FROM original; -- eliminamos la tabla `original`: DROP TABLE original; -- creamos la tabla `original` ya con estructura UTF-8: CREATE TABLE original( ID int(9) NOT NULL AUTO_INCREMENT, campo1 int(15) NOT NULL DEFAULT 0, campo2 varchar(100) DEFAULT NULL, PRIMARY KEY (ID) ) TYPE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci; -- regresamos todos los datos de la tabla `gemela` -- en la `original`pero ya en formato utf-8: INSERT INTO original SELECT * FROM gemela; -- optimizamos la tabla `original`: OPTIMIZE TABLE original; -- eliminamos la tabla `gemela`: DROP TABLE gemela;
>mysql -h tuhost:puerto -u tunombredeusuario -p tubasededatos<elarchivo.sql


<!-- Si usas XHTML: --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- Si usas HTML: --> <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
header('Content-type: text/html; charset=utf-8');//si antes usabas: $str=htmlspecialchars($str); //ahora debes usar: $str=htmlspecialchars($str,ENT_COMPAT,'UTF-8'); //si antes usabas: $str=htmlentities($str); //ahora debes usar: $str=htmlentities($str,ENT_COMPAT,'UTF-8'); //si antes usabas: $str=html_entity_decode($str); //ahora debes usar: $str=html_entity_decode($str,ENT_COMPAT,'UTF-8');
//claro, primero hay que configurar las mbstring:
mb_internal_encoding('UTF-8');
//si antes usabas:
$str=strtolower($str);//minúsculas
//ahora debes usar:
$str=mb_convert_case($str,MB_CASE_LOWER);
//si antes usabas:
$str=strtoupper($str);//mayúsculas
//ahora debes usar:
$str=mb_convert_case($str,MB_CASE_UPPER);
//si antes usabas:
$str=ucwords($str);//Tipo Título
//ahora debes usar:
$str=mb_convert_case($str,MB_CASE_TITLE);
//si antes usabas:
$str=strlen($str);//contar caracteres
//ahora debes usar:
$str=mb_strlen($str);
//si antes usabas:
$str=substr_count($str,$sub);//contar subcadenas repetidas
//ahora debes usar:
$str=mb_substr_count($str,$sub);
//si antes usabas:
$str=substr($str,$ini,$can);//obtener subcadena
//ahora debes usar:
$str=mb_substr($str,$ini,$can);