Ich muss ein Problem lösen. Ich kann preg_replace 或 str_replace
nicht verwenden, da wir die Zeichen nicht vorbestimmen können, da die Daten aus der Formulareingabe stammen.
Ich habe versucht, diese Zeichen daraus zu entfernen $name "Test ½ ´ ¤ £ € ¨"
½ ´ ¤ £ € ¨;
Das Gleiche gilt für das Frontend, die Charaktere können nicht vorherbestimmt werden
Ich habe die folgenden Methoden ausprobiert, aber keine davon hat funktioniert
$name = "Test ½ ´ ¤ £ € ¨"; mb_convert_encoding(strval($name); utf8_decode(strval($name);
Meine ideale Ausgabe ist Test
您可以始终遍历字符串中的字符。但要小心:php不是原生支持Unicode的。
这会遍历用户提供的字符串中的多字节字符,并允许您对它们进行任何操作。该示例构建了一个结果字符串,省略了您提到的字符。(未调试,抱歉。)
(恕我直言,我认为您避免使用字符串替换函数的理由可能是错误的。使用正则表达式字符类的好处在于:正则表达式作者已经解决了许多奇怪的边缘情况,其中Unicode包含了令人不安的许多情况。)