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 :
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);
}
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 ! 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 !