Bonjour,
j'ai appris que l'UTF-8 était codé sur 2 octets contrairement à l'ISO. Et apparemment, (du moins, c'est mon cas) cela pose pas mal de problèmes avec PHP.
En effet, il y a quelques temps, je me suis tiré les cheveux sur le script suivant cencé nettoyer une chaîne de caractères :
et bien ce script ne fonctionne pas lorsque la page est au format UTF-8. Je me suis rendu compte que le nombre de caractères dans $search n'était pas le même que pour $replace !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 function clean($filename) { $search = 'çñÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåèéêëìíîïðòóôõöùúûüµýÿ'; $replace = 'cnAAAAAACEEEEIIIIOOOOOUUUUYaaaaaaeeeeiiiioooooouuuuuyy'; return strtr($filename, $search, $replace); }Visuellement, les deux ont 54 caractères mais strlen($search) retourne 108... ce qui crée un décalage pour la fonction strtr().
![]()
Alors ma première question est :
¤ est-il possible de détecter (via une fonction ou script) si une chaîne est au format UTF-8 ?
ma seconde question :
¤ connaissez vous un script permettant la même chose que clean() (ci-dessus) tout en gérant l'UTF-8 ?
Merci d'avance !
Partager