sql >> Base de Datos >  >> RDS >> Mysql

Cómo manejar correctamente el carácter internacional en PHP/MySQL/Apache

Apache

La codificación del servidor no debe estar establecida o debe establecerse en UTF-8. Esto se hace a través de la directiva AddDefaultCharset de apache. Esto puede ir al virtualhost o al archivo general (ver documentación).

AddDefaultCharset utf-8

MySql

  • Establecer la intercalación de la base de datos para que sea UTF-8
  • Establezca la codificación de la conexión. Se puede hacer como alguien dijo con mysqli_set_charset, o enviando esto justo después de conectarse:
    SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'

PHP

1- Debe configurar el conjunto de caracteres HTML de la página para que sea UTF-8, mediante una metaetiqueta en la página o mediante un encabezado PHP:

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-or-
    header('Content-type: text/html; charset=utf-8');

2- Siempre debe usar la versión mb* de funciones relacionadas con cadenas, por ejemplo, mbstrlen en lugar de strlen para obtener la longitud de cadena de una cadena.

Esto debería permitirle tener UTF-8 en todas partes, desde las páginas hasta los datos. Una prueba que puede hacer:haga clic con el botón derecho en cualquier parte de la página con Firefox y seleccione Mostrar información de la página. La codificación efectiva se enumera en esa página.