这是什么字符( Â ),我如何用PHP删除它?

2022-08-30 18:58:14

这是一个大写的 A,顶部有一个 ^:Â

它显示在从网页中提取的字符串中。它显示在原始站点上原始字符串中以前存在空白区域的位置。这是存储在我的数据库中的实际字符。这也是当我回显包含它的字符串时在我的网站上显示的内容。

当我最初处理网页时,我意识到这是一个字符编码问题,但是我现在被困在数据库中的这些字符中。我必须在显示此字符时转换此字符,或者在输出包含它的html之前在php中的其他位置进行转换。我无法重新处理原始文件。

我尝试过str_replace()和html_entity_decode(),但都什么也没做。

我还需要尝试什么?


答案 1

“拉丁语1”是你的问题。网页大约有 65256 个 UTF-8 字符可用,您无法将其存储在 Latin-1 代码页中。

对于您眼前的问题,您应该能够

$clean = str_replace(chr(194)," ",$dirty)

但是,我会尽快将您的数据库切换为使用utf-8,因为问题几乎肯定会再次发生。


答案 2

这对我有用:

$string = "Sentence ‘not-critical’ and \n sorting ‘not-critical’ or this \r and some ‘not-critical’ more. ' ! -.";
$output = preg_replace('/[^(\x20-\x7F)\x0A\x0D]*/','', $string);

推荐