Wikipedia奇怪的编码为file_get_contents的答案

时间:2012-06-21 22:19:43

标签: php file-get-contents wikipedia

<?php

ini_set('user_agent', 'Mozilla/5.0 (Windows NT x.y; Win64; x64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1');

echo file_get_contents('http://fr.wikipedia.org/wiki/Brazil', false, $context);

//echo file_get_contents('http://fr.wikipedia.org/wiki/Argentina');

//echo file_get_contents('http://fr.wikipedia.org/wiki/France');

维基百科的答案类似于编码问题(我不能发布它,因为StackOverflow发布规则,但如果你运行脚本就可以看到它。)

(等)

这是针对巴西和阿根廷的。但是对于其他页面(如法国),它运作良好。什么事情发生了什么?顺便说一下,这些页面适用于浏览器。

2 个答案:

答案 0 :(得分:2)

最后,我发现了问题。我收到了一个gzip压缩HTML。当字符串看起来是二进制时,我解决了使用php函数解压缩HTML的问题。

我虽然cURL会以透明的方式为开发人员处理加密,但我遇到了同样的问题。我认为这可能是维基百科的问题。

答案 1 :(得分:1)

如果你从控制台运行它,请确保它使用UTF-8(在Linux中应该是这样,不确定它是否可以在Windows中使用)。

如果您是从网上获取的,请将header('Content-Type: text/html; charset=UTF-8');添加到脚本的开头,以通知浏览器正确的编码。