如何防止显示钻石问号符号,甚至使用mb_substr和utf-8

Ene*_*oma 7 php substr

我已经阅读了其他一些问题,尝试了答案,但最后没有得到任何结果.我得到的是例如这个

????? ?? ?????? ?? ? ...
Run Code Online (Sandbox Code Playgroud)

我无法删除那个奇怪的问号.我所做的是获取编码的RSS源的内容,也 <?xml version="1.0" encoding="UTF-8"?>使用希腊语作为内容.

有没有什么办法解决这一问题?

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<div><?php
    $entry->description = strip_tags($entry->description);
    echo mb_substr($entry->description, 0, 490);
?> ...</div>
Run Code Online (Sandbox Code Playgroud)

Ene*_*oma 17

这就是答案

mb_substr($entry->description, 0, 490, "UTF-8");
Run Code Online (Sandbox Code Playgroud)


esp*_*ley 12

我相信问题在于您的编码.您输出的是UTF-8但浏览器无法解释其中一个字符.我过去所知道的问号符号实际上是由浏览器生成的,所以没有搜索和替换....它是关于修改编码或在输出之前从字符串中消除未知字符...

如果您可以访问数据源,那么您可能需要检查数据库设置以确保它已正确编码...如果没有,那么您将不得不找到使用php转换数据...不是一个简单的任务......

也许:

mb_convert_encoding($string, "UTF-8");
Run Code Online (Sandbox Code Playgroud)