Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
encodage [2017/10/26 18:25]
127.0.0.1 modification externe
encodage [2021/07/26 17:32] (Version actuelle)
Elodie [Raison historique]
Ligne 21: Ligne 21:
 ==== Raison historique ==== ==== Raison historique ====
  
-Au niveau historique, après la seconde guerre mondiale et au moment de l’émergence d'Internet, les européens et surtout les américains n'ont pas jugés nécessaire de prendre en compte les langues asiatiques, surtout après Nagasaki et Hiroshima et c'est ainsi qu'un fossé a été crée.+Au niveau historique, après la seconde guerre mondiale et au moment de l’émergence d'Internet, les Européens et surtout les Américains n'ont pas jugés nécessaire à cette époque-là, de prendre en compte les langues asiatiques.
  
 Beaucoup d'hébergeurs sont encore en Latin1 pour justement ne pas s’embêter avec les développements ne se souciant pas de l'encodage. Mais de plus en plus de sites sont maintenant en UTF8, ceci pour gérer beaucoup plus facilement ces caractères non présents sur nos claviers européens. Il faut savoir également que PHP 5.6 sera par défaut en UTF8. Beaucoup d'hébergeurs sont encore en Latin1 pour justement ne pas s’embêter avec les développements ne se souciant pas de l'encodage. Mais de plus en plus de sites sont maintenant en UTF8, ceci pour gérer beaucoup plus facilement ces caractères non présents sur nos claviers européens. Il faut savoir également que PHP 5.6 sera par défaut en UTF8.
  
-Le problème est pratiquement le même avec l'IPv4 où l'Asie a été fortement mise de coté mais avec l'arrivé de l'IPV6, ce fossé tend à disparaitre.+Le problème est pratiquement le même avec l'IPv4 où l'Asie a été fortement mise de côté, mais avec l'arrivée de l'IPV6, ce fossé tend à disparaitre.
  
-Les applications en UTF8 sont rares mais deviennent de plus en plus nombreuses car l'UTF8 offre plus de possibilités de type d'écriture. Les développeurs à la page ont compris et savent qu'il faut spécifier comment se fait la connexion pour ne pas être tributaire des options par défaut du serveur MySQL ou même du serveur Web.+Les applications en UTF8 sont raresmais deviennent de plus en plus nombreusescar l'UTF8 offre plus de possibilités de type d'écriture. Les développeurs à la page ont compris et savent qu'il faut spécifier comment se fait la connexion pour ne pas être tributaire des options par défaut du serveur MySQL ou même du serveur Web.
  
 Les anciennes applications ainsi que les développeurs en herbes ne se préoccupent pas de ce problème et disent "on a toujours fait comme ça et ça a toujours marché". Et bien non... Internet a été créé sans les accents pour les anglais/américains, sans tenir compte des langues asiatiques et arabiques. Les anciennes applications ainsi que les développeurs en herbes ne se préoccupent pas de ce problème et disent "on a toujours fait comme ça et ça a toujours marché". Et bien non... Internet a été créé sans les accents pour les anglais/américains, sans tenir compte des langues asiatiques et arabiques.
  
-Une variante Latin15 à été crée pour les européens (et supporte quelques autres caractères comme le eszett allemand "ß" ainsi que le signe euro "€" entres autres. Le Latin15 était une étape, l'UTF8 est sa finalité.+Une variante Latin15 été crée pour les européens (et supporte quelques autres caractères comme le eszett allemand "ß" ainsi que le signe euro "€" entres autres. Le Latin15 était une étape, l'UTF8 est sa finalité.
  
 ==== Comment résoudre le problème ==== ==== Comment résoudre le problème ====
Ligne 37: Ligne 37:
 En conclusion, si votre base de donnée est en Latin1, il faut le dire juste après la connexion en ajoutant seulement une ligne. En conclusion, si votre base de donnée est en Latin1, il faut le dire juste après la connexion en ajoutant seulement une ligne.
  
-Exemple avec l'ancien connecteur MySQL : +Exemple avec le connecteur MySQL PDO :
-<code> +
-<?php +
-mysql_connect('sql.franceserv.fr','login','password'); +
-mysql_query("SET NAMES 'latin1'"); //La connexion doit se faire en latin1 et non en utf8 +
-?> +
-</code> +
- +
-Ou avec le connecteur MySQL PDO recommandé :+
  
 <code> <code>
Ligne 51: Ligne 43:
 </code> </code>
  
-Vous pouvez également migrer vos bases de données MySQL en encodage utf8 via PhpMyAdmin mais sachez que c'est très risqué si vous ne faites aucune sauvegarde avant. Dans ce cas, il ne vous sera pas nécessaire de préciser que vous vous connectez à une base de données en encodage UTF8. Cependant, il est toujours mieux de le préciser pour ne pas être tributaire de la configuration par défaut de notre plateforme d'hébergement :+Vous pouvez également migrer vos bases de données MySQL en encodage utf8 via PhpMyAdmin mais sachez que c'est très risqué si vous ne faites aucune sauvegarde avant. Dans ce cas, il ne vous sera pas nécessaire de préciser que vous vous connectez à une base de données en encodage UTF8.
  
-<code> +Cependantil est toujours mieux de le préciser pour ne pas être tributaire de la configuration par défaut de notre plateforme d'hébergement :
-<?php +
-mysql_connect('sql.franceserv.fr','login','password'); +
-mysql_query("SET NAMES 'utf8'"); +
-?> +
-</code>+
  
-Ou avec le connecteur MySQL PDO recommandé :+Avec le connecteur MySQL PDO recommandé :
  
 <code> <code>