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,因为问题几乎肯定会再次发生.
它实际上不是一个字符,可能是由于内容编码和浏览器编码之间的错位造成的.尝试将输出页面的编码设置为您正在使用的页面.
例如,在该部分中,输出:
echo "<META http-equiv='Content-Type' content='text/html; charset=UTF-8'>";
Run Code Online (Sandbox Code Playgroud)
(将UTF-8调整为你正在使用的任何东西)
这对我有用:
$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)
归档时间: |
|
查看次数: |
32555 次 |
最近记录: |