从网站提取数据时出现奇怪的字符:
Â
如何删除不是非扩展ASCII字符的内容?
正则表达式替换将是最佳选择。使用$str作为一个例子的字符串,并使用匹配它:print:,这是一个POSIX字符类:
$str
:print:
$str = 'aAÂ'; $str = preg_replace('/[[:^print:]]/', '', $str); // should be aA
什么:print:是寻找所有可打印字符。相反,:^print:查找所有不可打印的字符。不属于当前字符集的所有字符都将被删除。
:^print:
注意: 使用此方法之前,必须确保当前字符集为ASCII。POSIX字符类同时支持ASCII和Unicode,并且仅根据当前字符集进行匹配。从PHP 5.6开始,默认字符集为UTF-8。