嗨,如何用php中不需要的字符格式化字符串?尝试了strip_tags,mysqli_real_escape_string,但没有成功。
这是场景。该字符串是通过可允许富文本输入的android应用输入的,下面是图片
添加后,数据库条目看起来很正常,下面是图片
现在终于从URL中读取了字符串,下面是图片
如您所见,粗体文本之间有一个Â字符,但是它没有出现在第二张图像的db条目中。实际上,这个字符串是由gsm模块读取的,并且由于Â字符,导致系统崩溃。
strip_tags返回相同的字符串,而mysqli_real_escape_string返回空字符串。
如何从php中不需要的字符(不仅仅是Â)中清除此类字符串以仅返回纯文本?
答案 0 :(得分:0)
这与Unicode与ASCII有关。您的语言环境必须设置为ASCII,然后代码才能起作用,因为[[:: print:]]引用根据当前语言环境确定了不可打印的内容。 这是对字符串和数组都有答案的帖子:
Remove non-ascii characters from string
$str = 'aAÂ';
$str = preg_replace('/[[:^print:]]/', '', $str); // should be aA
另一个具有很好解释的参考文献: https://alvinalexander.com/php/how-to-remove-non-printable-characters-in-string-regex