Preg replace -如何从php的字符串中删除像这样的特殊字符


preg replace - how to remove special chars like this █ from string in php

如何从PHP字符串中删除这种特殊字符我用这个preg_replace('/['x00-'x1F'x80-'xC0]/u', '',$string);

但是我想允许特殊字符,如:, ', ",对于法语

您可以使用unicode字符类,如'p{Latin}表示拉丁字母,'p{Sc}表示货币,'p{P}(或更短的'pP)表示标点符号:

$str = preg_replace('/[^0-9'p{Latin}'pP'p{Sc}@'s]+/u', '', $str);

您可以在这里找到PCRE中可用的不同unicode字符类。(搜索语句:"支持以下一般类别属性代码")

所以,您希望使用UTF-8的代码点,但您希望使用ISO 8859-15的字符编码方案。我认为你可以把字符串转换两次:

$text = iconv("ISO-8859-15", "UTF-8", iconv("UTF-8", "ISO-8859-15//IGNORE", $text));
echo $text;