osCommerce France : Accueil Forum Portail osCommerce France Réponses aux questions Foire aux contributions

Bienvenue invité ( Connexion | Inscription )

 
Closed TopicStart new topic
> l'absurde histoire de &oelig : plus connu sous œ, transcodage de œ et Œ depuis iso-8859 vers UTF8 et inversement
Gnidhal
posté 27 Nov 2011, 22:39
Message #1


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Salut à tous,
Essayant de mettre au propre une base de données d'adresses, j'y ai découvert des noms de ville avec le caractère œ (=> réf wikipedia sur le caractère)
Fort bien. C'est pas un problème pour utf-8.
Wai, mais pas si simple!
Ma base de données originale étant en UTF-8 tout allait bien tant que les pages étaient en UTF-8 mais je devais passer en ISO-8859-1 pour un autre site. Donc les accents doivent être convertis.
Magique, la fonction PHP utf8_decode fait cela très bien, sauf pour œ et son grand frère Œ.
Le résultat est immanquablement "?"
Après des heures de recherches diverses via GG, je trouve enfin une solution :
Il faut convertir le œ en son entité & #339; avant de le passer à la fonction php utf8_decode!
Et pourquoi #339 ? normalement le codage ascii de ce caractère est & #156; ? oui mais il a aussi #339! et si on convertit en #156 le procédé ne fonctionne pas!

En fouillant un peu sur le net, Wikipedia nous apprend que "Les lettres françaises œ et Œ n'ont pas été incluses dans ISO/CEI 8859-1 car les principaux représentants francophones dans le groupe de travail (GT) n’ont pas estimé cela nécessaire : l'un estimait qu'il s'agissait d'une simple ligature typographique (à tort, bien qu’il n’existe aucune possibilité de confusion avec les lettres non ligaturées dans l’orthographe française), et l’autre était employé par un grand fabricant d’imprimantes qui ne les avait pas inclus dans ses imprimantes". (pour comparaison æ et Æ sont, eux, inclus à la norme)
On est bien peu de chose!
Mais apprendre qu'on se prend la tête à cause de deux zozos qui ont pondu un standard bancal car l'un ne savait pas écrire convenablement un "œil de bœuf" et que l'autre ne voulait pas déplaire à son boss, c'est un peu désolant.
Notons aussi au passage que cette ligature, pourtant utilisée dans des mots relativement courants comme bœuf, chœur, cœur, manœuvre, mœurs, œil, œillet, œuf, œuvre, sœur, nœud, vœu... n'existe pas sur nos clavier FR alors que d'autres caractères moins usités comme § ou ² y sont présents. Comme quoi l'absurde va parfois au bout des choses.

(complément d'infos, le Œ se code avec #140 et #338 et que la conversion doive se faire vers UTF-8 ou depuis UTF-8, il faut passer par ces entités pour afficher un caractère correct)

La fonction qui va bien :
Code
  function oelig($var){
      $var = mb_ereg_replace("Œ", "& #338;", $var);
      $var = mb_ereg_replace("œ", "& #339;", $var);
      return $var;
// enlever l'espace avant le # pour que le code fonctionne (nécessité pour la visu dans ces forums)
  }
puis on envoi le résultat à la fonction php qui va bien, exemple:
echo utf8_decode(oelig($txt));
Pour servir à ceux (rares, sûrement) qui rencontreront le même problème ici ou ailleurs.


--------------------
Tout d'abord : - Ni Hotline ni Service Après Vente, ces forums sont un lieu d'échange. BIEN POSER SA QUESTION (généralités)
Les "Informations Importantes" que vous devez ABSOLUMENT avoir lues :
Règlement, Bien poser sa question dans ces forums et Bien utiliser les Forums.
Les raccourcis pour gagner du temps : la FAQ, les PDF de la Doc (MS2-fr): PDF-V1 et PDF-V2, le moteur de Recherche sur les forums , la Liste des Contributions de Corbin.

----------------------------- Quelques sites de référence ---------------------------
PHP: Le site du Zéro et PHP Débutant avec la DOC en français -- HTML: Self HTML - WebProgrammation -- CSS: OpenWeb - AlsaCréations - CSS/Edge -- Autres ressources: - XajaX - highslide js
Les bons outils : EasyPHP - WAMP-5 - - Notepad++ - Firefox et son extension WebDeveloper
Le gène idéal c'est le gène original. Le génie des halles est un Génie des Alpages qui tente d'être à la page. (Merci f'murrr pour les cours de philosophie de chien)
Go to the top of the page
 
Gnidhal
posté 3 Feb 2012, 13:56
Message #2


5eme dan OSC
Icône de groupe

Groupe : Administrateur
Messages : 9221
Inscrit : 4-March 03
Lieu : Pau
Membre no 927



Message de polo séparé et renvoyé ici :
http://www.oscommerce-fr.info/forum/index....st&p=360844
Go to the top of the page
 

Closed TopicStart new topic
1 utilisateur(s) sur ce sujet (1 invité(s) et 0 utilisateur(s) anonyme(s))
0 membre(s) :

 



RSS Version bas débit Nous sommes le : 28th March 2024 - 12:13
Ce site est déclaré auprès de la commision Nationale
de l'Informatique et des Libertés (déclaration n°: 1043896)