Caracteres acentuados almacenados en la base de datos MySQL

Tengo una aplicación web que almacena texto en francés, que posiblemente incluye caracteres acentuados, en una base de datos MySQL. Cuando los datos se recuperan directamente a través de PHP, los caracteres acentuados se convierten en gibbirish. Por ejemplo: qui r fl te la liste.

Por lo tanto, uso htmlentities() (o htmlspecialchars() ) para convertir la cadena a entidades html, y todo está bien. Sin embargo, cuando llego a datos de salida que contienen tanto caracteres acentuados como elementos HTML, las cosas se vuelven más complicadas. Por ejemplo, se convierte a <strong> y por lo tanto no es entendido por el navegador.

¿Cómo puedo obtener simultáneamente caracteres acentuados visualizados correctamente y mi HTML analizado correctamente?

¡Gracias!

Solutions Collecting From Web of "Caracteres acentuados almacenados en la base de datos MySQL"

Tal vez podrías echar un vistazo a utf8_encode() y utf8_decode()

Debe usar la encoding UTF-8 para almacenar los datos en la base de datos; luego, todo debería funcionar como se espera y no se htmlentities() .

Asegúrese de que todos los aspectos sean utf-8: la base de datos, las tablas de encoding y clasificación, y la conexión, tanto en el lado del cliente como del servidor. Las cosas podrían funcionar incluso si no todo es utf-8, pero podría fallar horriblemente cuando se haga una copia de seguridad y restauración, es por eso que recomiendo utf-8 en todos los ámbitos.

Puede establecer la intercalación de los campos de la base de datos que contienen el carácter acentuado en utf8_general_ci para admitirlos.

Finalmente, también puede establecer la intercalación de la base de datos, por lo que todos los campos están configurados de manera predeterminada.