这个字符是什么(Â)以及如何用PHP删除它?

T. *_*nes 16 php string character-encoding

这是一个资本A,顶部是^: Â

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

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

我尝试过str_replace()和html_entity_decode(),但都没有做任何事情.

我还应该尝试什么?

Jam*_*son 20

"拉丁语1"是你的问题.网页有大约65256个UTF-8字符,您无法存储在Latin-1代码页中.

对于你当前的问题你应该能够

$clean = str_replace(chr(194)," ",$dirty)
Run Code Online (Sandbox Code Playgroud)

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


She*_*epy 7

它实际上不是一个字符,可能是由于内容编码和浏览器编码之间的错位造成的.尝试将输出页面的编码设置为您正在使用的页面.

例如,在该部分中,输出:

echo "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>";
Run Code Online (Sandbox Code Playgroud)

(将UTF-8调整为你正在使用的任何东西)


Gra*_*ant 7

这对我有用:

$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);
Run Code Online (Sandbox Code Playgroud)