中文字符- PHP编码


chinese chars - PHP encoding

我正在尝试从一个网站上提取中文单词。

我使用简单的cURL代码:

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
echo $response;

其中一个词的预期结果是

网络频率

但是我得到了这个:

ÍøÂçƵÂÊ

如果我url编码字的结果是不同的。

我最近有编码问题。中文字符是UTF8还是什么?谁能帮助我的字符会显示"正常"与回声,如果我url编码他们的结果将是一样的,如果我把它们从网站上复制。

欢呼

中文通常是UTF-8,是的。您遇到的问题可能不是数据没有正确接收(cURL知道它在做什么),而是您没有正确地将它们发送到浏览器。

在你的页面顶部试试:

header('Content-Type: text/html; charset=utf-8');

这将告诉浏览器你正在发送UTF-8信息。

Update:如果这不起作用,可能是PHP本身没有正确处理它们。试着在你的echo中玩utf8_encodeutf8_decode。如果thàt不工作,那么cURL没有正确解码流,这意味着您必须在响应中查找Content-Type标头并相应地解码流。

试试这个,

1)创建一个新文档,并确保文档是UTF-8兼容

2)使用金属标签:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

3)我不建议强迫header使用utf-8,而只是使用ini_set

ini_set('default_charset', 'UTF-8');

如果您从另一个页面调用curl函数,请确保该页面能够携带UTF-8字符并将其传递到与UTF-8兼容的页面。