我有一个奇怪的角色 - 在卷曲请求中出现而不是引号和双引号
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, 'UTF-8');
我正在使用php domelement来操作结果
$fulltext = $doc->getElementsByTagName('p');
foreach($fulltext as $para) {
$fulltextstr .= $para->textContent;
}
它的作用大部分除了引号和双引号被替换为â,我该如何替换它。
我试过
echo htmlspecialchars($ fulltextstr,ENT_SUBSTITUTE,'UTF-8');
但这不会删除字符,有没有办法通过替换清除输出,或者如果不可能那么删除这些字符!?
获取此链接时出现此问题: https://www.dissentmagazine.org/article/coping-economy-mindfulness-goes-corporate
更多详情
我在元标题中设置了utf-8,我正在使用
mb_regex_encoding('UTF-8');
mb_internal_encoding('UTF-8');
网站标题设置为UTF-8:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我还应该做什么?!
答案 0 :(得分:0)
“
字符检测为UTF-8并且看起来很好,我看到了与您描述的类似的问题。
虽然这不是一个完美的答案,但它是一种解决方法。
您可以在使用字符串之前简单地替换这些字符(和其他特定字符)。
str_replace(
[
"\xe2\x80\x98",
"\xe2\x80\x99",
"\xe2\x80\x9c",
"\xe2\x80\x9d",
"\xe2\x80\x93",
"\xe2\x80\x94",
"\xe2\x80\xa6"
],
[
"'",
"'",
'"',
'"',
'-',
'--',
'...'
],
$text
);
这将仅使用引号替换左右引号,左引号和右引号仅使用双引号,以及带匹配符号的连字符,短划线和椭圆字符。
答案 1 :(得分:0)
我使用以下内容对其进行修补,这会产生干净的输出,第一行是删除&#34;&amp; nbsp&#34;被显示为黑钻石问号的角色。
Array
(
[0] => Array
(
[date] => 01/01/18
[name] => Medicine,Drugs
)
[1] => Array
(
[date] => 02/01/18
[name] => Medicine,Drugs,My Drugs
)
)
这不是一个强大的解决方案,因为我期望原始的utf8能够正常显示但是我发现如果我必须使用utf8_decode,那么我的网站不能正确使用utf8 ...我该如何解决这个问题? !我在header meta中设置了utf8,并且我使用了mb_regex_encoding(&#39; UTF-8&#39;)和mb_internal_encoding(&#39; UTF-8&#39;),数据库是还有utf8,我还缺少什么?!