encoding des caractères: UTF8 vs iso-8859-1

Je maintiens deux sites généralement parallèles basés sur une publication récente d'un CMS bien connu basé sur php. Un site est en anglais, un en polonais. (La localization polonaise est une option standard pour le CMS.) Les deux fonctionnent normalement.

En particulier, le site polonais rend correctement les personnages diacritiques polonais ainsi qu'une aspersion de caractères "spéciaux" allemands et cyrilliques. Lorsque j'examine les en-têtes générés par le CMS, je vois

<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 

exactement comme je l'espère. Unicode est le path à parcourir.

Le site anglais rend les caractères anglais correctement, bien sûr, plus un jet similaire de caractères "spéciaux" allemands et cyrilliques sont rendus correctement. Lorsque j'examine les en-têtes générés par le CMS, je vois

 <meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1' /> 

ce qui n'est pas ce que je m'attends, car iso-8859-1 – autant que je peux le dire – est incapable de rendre les diacritiques polonais et les cyrilliques. (Je suppose que je dois excepter les personnages polonais non diacritiques et les caractères cyrilliques qui ressemblent à des caractères latins, mais les chevauchements sont hors de propos).

Q1: sur une page déclarée dans l'en-tête pour être encodée iso-8859-1, comment est-ce que les diacritiques polonais et les caractères cyrilliques sont correctement exécutés? Le browser pourrait-il lire la nomenclature ou faire une parsing du contenu réel et annuler la déclaration d'en-tête? Ou quoi?

Q2: Existe-t-il une bonne raison technique selon laquelle l'installation anglaise par défaut du CMS devrait toujours utiliser l'enencoding iso-8859-1 au lieu de utf-8? Je pense que toutes les installations devraient utiliser l'enencoding utf-8, mais il n'y a pas de raison pressante de convertir la version anglaise. Peut-être que quelqu'un peut ici penser à une bonne raison?

3 Solutions collect form web for “encoding des caractères: UTF8 vs iso-8859-1”

A1: Probablement votre server Web est configuré pour envoyer l'enencoding UTF-8 dans l'en-tête HTTP, avant que le HTML ne soit envoyé. Je pense que vous pouvez inspecter les en-têtes HTTP avec les outils de développement Firebug ou Chrome (Ressources-> http: //…- > En-têtes-> En-têtes de réponse).

A2: Peut-être qu'ils utilisent toujours 8859-1 parce qu'ils n'ont pas eu le time de passer à UTF8?

Q1: CMS peut utiliser des entités HTML pour coder des caractères hors de la plage de code ISO 8859-1.

Q2: je ne connais aucun motif de choisir ISO 8859-1 sur UTF 8 dans ce cas.

Le défi avec unicode est que tous les liens de la string doivent le supporter ou il sera brisé.

Voici un problème commun. Le contenu est-il stocké dans une database? Cela doit être compatible avec UTF8. Pour mysql, connectez-vous à la command line et émetz la command

 show table status 

Chaque tableau affiche le encoding du classment / set de caractères.

Vous pouvez en savoir plus sur l'enencoding php utf8 ici

https://stackoverflow.com/questions/1344692/i-need-help-fixing-broken-utf8-encoding

et plus encore sur php / mysql ici

https://stackoverflow.com/questions/405684/php-mysql-with-encoding-problems

Pour répondre à votre deuxième question – U + 0000 à U + 00FF dans UTF8 est identique à ISO 8859-1 (Latin-1). Nous utilisons UTF-8 pour l'enencoding dans tous nos sites Web et nous n'avons eu aucune difficulté.

  • Modification du encoding des caractères d'une database MySQL
  • Y a-t-il des inconvénients d'utiliser UTF8 dans une database Oracle?
  • Servir différents chars par hôte virtuel
  • Caractères brisés dans les noms de files uniquement dans certains directorys
  • mysql: set default charset to utf8
  • Comment activer l'en-tête HTTP de charset correct dans NGINX
  • Nginx charset ne fonctionne pas
  • Commande pour créer une database MySQL avec le jeu de caractères UTF-8
  • Mysql charset problem
  • La meilleure façon de s'assurer qu'une base de données MySQL est entièrement dans UTF8
  • Définir character_set_results UTF8 dans MySQL my.cnf
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.