我试图从网站上提取中文字词。
我使用的是简单的cURL代码:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;
其中一个词的预期结果是
网络频率
但是我得到了这个:
ÍøÂçƵÂÊ
另外,如果我对url编码的单词结果有所不同。
我最近遇到编码问题。 中国的字符是UTF8还是什么? 任何人都可以帮助我,chars会显示“正常”的回声,如果我对其进行编码,结果就像我将它们从网站上复制一样。
干杯
答案 0 :(得分:4)
中文通常是UTF-8,是的。您遇到的问题可能不是数据未正确接收(cURL知道它正在做什么),而是您没有正确地将它们发送到浏览器。
在页面顶部试试:
header('Content-Type: text/html; charset=utf-8');
这将告诉浏览器您正在发送UTF-8信息。
更新:如果这不起作用,可能是PHP本身没有正确处理它们。尝试在utf8_encode
中使用utf8_decode
和echo
。如果thàt不起作用,则cURL不会正确解码流,这意味着您必须在响应中查找Content-Type
标头并相应地解码流。
答案 1 :(得分:2)
试试这个,
1)创建一个新文档并确保该文档与UTF-8兼容
2)使用金属标签:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3)我不建议强制标头使用utf-8,而只是使用ini_set
ini_set('default_charset', 'UTF-8');
如果您从其他页面调用curl函数,请确保该页面能够携带UTF-8字符并将其传递到UTF-8兼容页面。