Ver Mensaje Individual
  #2 (permalink)  
Antiguo 24/04/2016, 13:02
Avatar de kip13
kip13
 
Fecha de Ingreso: agosto-2011
Mensajes: 167
Antigüedad: 12 años, 9 meses
Puntos: 13
Respuesta: Problema con mi formulario...

Guía paso a paso para solucionar el problema de los acentos y eñes

Cotejamiento
Al crear la base de datos MySQL, asegúrate que los campos string y demás esten en utf8_spanish_ci y el cotejamiento de las tablas en utf_unicode_ci (más tarde en Operations > Collation de phpMyAdmin se puede cambiar)
Content type HTML
Pon en el <head> de todos los archivos HTML:
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
Content type PHP
Y en los puramente PHP (que muestran XML, llamadas de AJAX, APIs…) pon el código:
header("Content-Type: text/html;charset=utf-8");
Set names
Al crear la conexión de PHP con MySQL, envía esta consulta justo tras la conexión:
mysql_query("SET NAMES 'utf8'");
(Para MySQLi escribe $acentos = $db->query("SET NAMES 'utf8'"); )
Convertir codificado a UTF-8
Convierte todo lo que esté codificado de latin1 a UTF-8
SELECT convert(cast(convert(content using latin1) as binary) using utf8) AS content
Apache
Quita el DefaultCharset del Apache o modifícalo
htmlentities
Como última y desesperada opción, quita todos los htmlentities(); y sustitúyelo por otro parser para ‘sanitizar’ los datos.

Decodificar una cadena UTF-8 con PHP - decode utf8 php

Existe una función de PHP que realiza el trabajo de conversión de los caracteres UTF8 a sus correspondientes códigos reales.

La función se llama utf8_decode() y lo que hace es convertir una cadena que realmente utiliza ISO-8859-1 pero que tiene caracteres codificados a con UTF-8. La conversión genera el string en ISO-8859-1 pero con un sólo byte para todos los caracteres, con lo que se verán correctamente.

Se utiliza así:

utf8_decode("Solución útil y apañada a UTF-8");

Devolverá una cadena el texto correctamente escrito:

Solución útil y apañada a UTF-8

Codificar una cadena al juego de caracteres UTF-8 - encode utf8 php

Existe una función para hacer justo el paso contrario, que vamos a ver también en desarrollo web .com. Es decir, partiendo de una cadena en el juego de caracteres ISO-8859-1, obtener la correspondiente traducción a UTF-8.

Esto lo podemos necesitar, por ejemplo, si nuestra base de datos está definida con UTF-8 y tenemos entrada de datos ISO-8859-1.

El uso es bien simple:

echo utf8_encode("Mañanas de programación PHP");

Y devolverá el correspondiente string convertido a UTF-8, que si lo mostramos en una página que utiliza el juego de caracteres ISO-8859-1, se vería de esta manera:

Mañanas de programación PHP

Lee e ingresa a los links de las fuentes si te es necesario, Saludos

fuente:
http://www.desarrolloweb.com/articul...8-con-php.html
http://xaviesteve.com/354/acentos-y-...-8-iso-8859-1/