Modifications entre les versions 1 et 5 (s'étendant sur 4 versions)
Version 1 à la date du 2007-06-10 19:28:24
Taille: 1603
Commentaire: premier jet...
Version 5 à la date du 2008-05-29 15:23:17
Taille: 2187
Commentaire: + exemple de gestion de migration
Texte supprimé. Texte ajouté.
Ligne 6: Ligne 6:
''...([:JeanChristopheAndré/ÀFaire:reste à écrire])...'' ''...([[JeanChristopheAndré/ÀFaire|reste à écrire]])...''
Ligne 15: Ligne 15:
 * ajouter les lignes suivantes dans les sections précisées de `/etc/mysql/my.cnf` :  * créer le fichier `/etc/mysql/conf.d/local.cnf` suivant :
Ligne 17: Ligne 17:
[client]
default-character-set = utf8
Ligne 20: Ligne 23:
# à exécuter pour tous les clients (indispensable pour PHP !) character-set-server = utf8

# à exécuter pour tous les clients (indispensable pour PHP 4, au moins)
Ligne 22: Ligne 27:

language = /usr/share/mysql/french
bind-address = 127.0.0.1
# log_slow_queries = /var/log/mysql/mysql-slow.log

[mysqldump]
# est-ce vraiment utile ? *** À TESTER ***
default-character-set = utf8
Ligne 27: Ligne 40:
[mysqldump]
# est-ce vraiment utile ? *** À TESTER ***
default-character-set = utf8
Ligne 39: Ligne 49:
AddDefaultCharset UTF-8 AddDefaultCharset utf-8
Ligne 47: Ligne 57:
 * on a parfois besoin de ne l'activer que pour une seule arborescence, par exemple le temps d'une migration, auquel cas on utilisera une configuration Apache de ce genre :
 {{{
<Location /branche-latin1/>
  AddDefaultCharset iso-8859-1
  php_value default_charset 'iso-8859-1'
</Location>
<Location /branche-unicode/>
  AddDefaultCharset utf-8
  php_value default_charset 'utf-8'
</Location>
}}}

Ce document présente les configurations à effectuer pour être compatible avec Unicode.

/!\ Attention : passer à Unicode ne se fait pas sur un coup de tête ! Il y a des implications à presque tous les niveaux et une mauvaise mise en place entraînerait au mieux des accents mal affichés et au pire des corruptions de données (typiquement suite à des mixages d'encodages) !

Stratégie

...(reste à écrire)...

Configuration

/!\ Attention : l'ordre est important. En particulier : il faut installer les locales avant tout.

Environnement système

  • installer le paquet locales et choisir une locales UTF-8 par défaut (typiquement fr_FR.UTF-8).

MySQL ≥ 5.0

  • créer le fichier /etc/mysql/conf.d/local.cnf suivant :

    [client]
    default-character-set = utf8
    
    [mysqld]
    # par défaut du côté serveur
    default-character-set = utf8
    character-set-server = utf8
    
    # à exécuter pour tous les clients (indispensable pour PHP 4, au moins)
    init-connect = 'SET NAMES utf8'
    
    language = /usr/share/mysql/french
    bind-address = 127.0.0.1
    # log_slow_queries = /var/log/mysql/mysql-slow.log
    
    [mysqldump]
    # est-ce vraiment utile ? *** À TESTER ***
    default-character-set = utf8
    
    [mysql]
    # par défaut du côté client (pour root, qui ne subit pas le init-connect)
    default-character-set = utf8

Apache ≥ 2.0

  • activer le module MIME si ce n'est déjà fait :
    sudo a2enmod mime
  • directive globale à ajouter, par exemple, dans /etc/apache2/conf.d/charset :

    AddDefaultCharset utf-8

PHP

  • directive globale à ajouter dans /etc/php4/apache2/php.ini :

    default_charset = "utf-8"
  • on a parfois besoin de ne l'activer que pour une seule arborescence, par exemple le temps d'une migration, auquel cas on utilisera une configuration Apache de ce genre :
    <Location /branche-latin1/>
      AddDefaultCharset iso-8859-1
      php_value default_charset 'iso-8859-1'
    </Location>
    <Location /branche-unicode/>
      AddDefaultCharset utf-8
      php_value default_charset 'utf-8'
    </Location>

Etude/Unicode (dernière édition le 2021-03-23 05:33:53 par JeanChristopheAndré)