PHPでの拡張ASCII/エンコードを手伝ってください!
-
03-10-2019 - |
質問
こんばんは。
これは私のコードです:
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。これは機能しないビットです
case 193: //Á...
return 'A';
そして、これはビットです:
case 98: //b
return 'a';
これらはテスト目的のためだけです。
誰もが何が起こっているのか教えてもらえますか?以前に同じ種類のエラーがありましたが、今ではコード自体に拡張されたASCIIを使用していません。これは以前のエラーの原因でした。
キャラクターのエンコードと関係があるに違いないと思いますが、よくわかりません。ちなみに、私はEclipseでコーディングしており、それによれば、私が使用しているエンコードはCP1252です。
ああ、そしてはい、コードはáàなどのアクセントされた文字を排除し、それらを基本的なヴォーガルに置き換えることになっています。
前もって感謝します
解決
マルチバイト文字があり、それぞれの文字を使用してループしている場合は、 strlen()
ループしているかどうかを確認するには? strlen()
1 byte == 1文字を想定します。
私は調べます 既存の音訳ライブラリ PHP用。
所属していません StackOverflow