Bonjour,

Je tourne en rond, je ne trouve pas de solution.

Je vous explique le problème:

Je dispose d'une base de données en utf-8 dans laquelle certains mots comportent des œ (typiquement, "cœur"). J'ai une nouvelle colonne dans mes tables que je souhaite remplir. La nouvelle info que je souhaite insérer se trouve dans un fichier (en utf-8 également) dans lequel ces mots sont précisés (afin de savoir où insérer la nouvelle info) mais les "œ" sont écrits "oe" dans cette liste.

J'ai donc naïvement pensé qu'un simple
Code : Sélectionner tout - Visualiser dans une fenêtre à part
$toto = ereg_replace('oe','œ',$toto);
suffirait à résoudre mon problème et à faire correspondre les mots de mon fichier texte avec ceux de ma base.

Mais oh, malheur! Je travaille sous Windows! Et pour obtenir le œ, je tape ALT + 0156, ce qui ne génère pas un œ UTF-8 ni Unicode, mais windows-1252, donc, pas de matching entre ma chaîne nouvellement créée et celle inscrite dans ma base.

j'ai donc voulu utiliser une variable:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$oe = 'œ';
$oe = utf8_encode($oe);
mais à ce moment là, le résultat est pire, mon œ disparait complètement.

Je tourne en rond, je ne trouve aucune solution... On m'a suggéré d'entrer le code unicode précédé de "\u" et donc d'avoir

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$oe = '\u0153';
ereg_replace('oe',$oe,$toto);
mais ça ne fonctionne pas non plus...

Est-ce qu'ici quelqu'un pourrait m'aider?