中文字符 - PHP编码

时间:2011-12-18 00:16:28

标签: php encoding cjk

我试图从网站上提取中文字词。

我使用的是简单的cURL代码:

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

echo $response;

其中一个词的预期结果是

网络频率

但是我得到了这个:

ÍøÂçƵÂÊ

另外,如果我对url编码的单词结果有所不同。

我最近遇到编码问题。 中国的字符是UTF8还是什么? 任何人都可以帮助我,chars会显示“正常”的回声,如果我对其进行编码,结果就像我将它们从网站上复制一样。

干杯

2 个答案:

答案 0 :(得分:4)

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

在页面顶部试试:

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

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

更新:如果这不起作用,可能是PHP本身没有正确处理它们。尝试在utf8_encode中使用utf8_decodeecho。如果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兼容页面。