php:file_get_contents编码问题

我的任务很简单:向translate.google.com发帖请求并获取翻译.
在下面的例子中,我使用“hello”这个词翻译成俄语.
header('Content-Type: text/plain; charset=utf-8');  // optional
error_reporting(E_ALL | E_STRICT);

$context = stream_context_create(array(
    'http' => array(
        'method' => 'POST','header' => implode("\r\n",array(
            'Content-type: application/x-www-form-urlencoded','Accept-Language: en-us,en;q=0.5',// optional
            'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7' // optional
        )),'content' => http_build_query(array(
            'prev'  =>  '_t','hl'    =>  'en','ie'    =>  'UTF-8','text'  =>  'hello','sl'    =>  'en','tl'    =>  'ru'
        ))
    )
));

$page = file_get_contents('http://translate.google.com/translate_t',false,$context);

require '../simplehtmldom/simple_html_dom.PHP';
$dom = str_get_html($page);
$translation = $dom->find('#result_Box',0)->plaintext;
echo $translation;

标记为可选的行是没有它们的输出相同的行.但我得到了奇怪的人物……

������

我试过了

echo mb_convert_encoding($translation,'UTF-8');

但我明白了

ÐÒÉ×ÅÔ

有人知道如何解决这个问题吗?

更新:

>忘了提到我所有的PHP
文件以UTF-8编码而没有
BOM
>当我改变“to”语言
到“en”,即从中翻译
英语到英语,它运作正常.
>我不认为我正在使用的库正在弄乱它,因为我试图输出整个$页面而不将其传递给库函数.
>我使用的是PHP 5

首先,您的浏览器是否设置为UTF-8?在Firefox中,您可以在View-> Character Encoding中设置文本编码.确保选择“Unicode(UTF-8)”.我还将View-> Character Encoding-> Auto-Detect设置为“Universal”.

其次,您可以尝试传递FILE_TEXT标志,如下所示:

$page = file_get_contents('http://translate.google.com/translate_t',FILE_TEXT,$context);

相关文章

Hessian开源的远程通讯,采用二进制 RPC的协议,基于 HTTP 传输。可以实现PHP调用Java,Python,C#等多语...
初识Mongodb的一些总结,在Mac Os X下真实搭建mongodb环境,以及分享个Mongodb管理工具,学习期间一些总结...
边看边操作,这样才能记得牢,实践是检验真理的唯一标准.光看不练假把式,光练不看傻把式,边看边练真把式....
在php中,结果输出一共有两种方式:echo和print,下面将对两种方式做一个比较。 echo与print的区别: (...
在安装好wampServer后,一直没有使用phpMyAdmin,今天用了一下,phpMyAdmin显示错误:The mbstring exte...
变量是用于存储数据的容器,与代数相似,可以给变量赋予某个确定的值(例如:$x=3)或者是赋予其它的变...