在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;
}
}
行。这是不起作用的位
case 193: //Á...
return 'A';
这就是这样做的:
case 98: //b
return 'a';
这些只是用于测试目的。
谁能告诉我发生了什么事?我之前遇到了相同的错误,但是现在我没有在代码本身中使用任何扩展ASCII,这是以前的错误原因。
我认为它必须与字符编码有关,但我不确定。顺便说一句,我正在以日食进行编码,并且据此,我正在使用的字符是CP1252。
哦,是的,该代码应该消除任何重音字母,例如Áà,并用其基本vogals代替它们,即
提前致谢
解决方案
如果您有多字节字符,并且您正在使用每个字符循环 strlen()
检查您是否循环? strlen()
假设1个字节== 1个字符。
我会看 现有的音译库 用于PHP。
不隶属于 StackOverflow