Bons gens du soir.Aide avec l'ASCII/encodage étendu en PHP!
Ceci est mon code:
static private function removeAccentedLetters($input){
for ($i = 0; $i < strlen($input); $i++) {
$input[$i]=self::simplify($input[$i]);
}
return $input;
}
static private function simplify($in){
$ord=ord($in);
switch ($ord) {
case 193: //Á...
return 'A';
case 98: //b
return 'a';
default:
return $in;
}
}
Ok. Ceci est le bit qui ne fonctionne pas
case 193: //Á...
return 'A';
Et c'est le bit qui fait:
case 98: //b
return 'a';
Ce ne sont que des fins de test.
Quelqu'un pourrait-il me dire ce qui se passe? J'avais le même type d'erreur auparavant mais maintenant je n'utilise pas d'ASCII étendu dans le code lui-même, ce qui était la cause d'erreur avant. Je pense qu'il doit avoir quelque chose à voir avec l'encodage de caractères, mais je ne suis pas sûr. En passant, je code dans Eclipse et, d'après cela, l'encodage de caractères que j'utilise est Cp1252.
Oh, et oui, le code est censé éliminer les lettres accentuées telles que à å et les remplacer par leurs vogals de base, à savoir â-> un
Merci à l'avance
Cela a du sens. Y a-t-il une autre façon de faire du vélo à travers une corde qui ne se laisse pas duper par cela? –
@Felipe Regardez 'mb_strlen()'. Cependant, je pense toujours que vous devriez regarder les solutions existantes. Si vous êtes vraiment désireux de rouler les vôtres, jetez un coup d'œil sur celui que vous connaissez déjà et disséquez-le. S'amuser! – alex
* @ Alex: * Votre lien pour rechercher Google ne fonctionne pas. Devrait être: http://www.google.com/search?q=php+transliteration – MikeSchinkel