2015-08-09 97 views
1

我想刮阿拉伯语的网页和一切工作正常,但事实上,当我回显文本我得到的是一个乱码文本,即使我已设置标题UTF-8设置Utf8不工作在阿拉伯语文字在PHP

这里是我的代码

<?php 

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

    require 'vendor/autoload.php'; 

    use Goutte\Client; 


    $client = new Client(); 

    $crawler = $client->request('GET', 'http://www.lebanonfiles.com'); 

    $news_container = $crawler->filter('#mcs4_container .line'); 

    $news_container->each(function($node) { 

     echo $node->text(); 

    }) 
?> 

什么,我得到的是这片乱码文字enter image description here

+0

设置元标题并不总是足够的。 →Apache发送什么头文件? →您的浏览器/页面检测在现实中表现如何? →如果将输出存储到文件并使用UTF-8编辑器打开,会发生什么情况? →Goutte是否正确[解压缩为UTF-8](http://stackoverflow.com/questions/18782332/can-goutte-guzzle-be-forced-into-utf-8-mode)? →另外一个截图转储不是很有用。至少使它成为一个hexdump。 →通过比较期望的UTF-8序列和Unicode表格等,提供一点自己的研究。 – mario

+0

尝试在HTML和PHP中设置字符集。它可能有帮助。 –

+0

这可能对你有帮助,[Force Goutte/Guzzle进入UTF-8模式](http://stackoverflow.com/questions/18782332/can-goutte-guzzle-be-forced-into-utf-8-mode) –

回答

1

你应该试试这个...尝试把这个线在你的PHP文件的开头:ini_set('default_charset', 'UTF-8');这可能会解决您的问题。

有一个愉快的一天。

+0

完美工作,谢谢 –

1
  • ALL属性必须设置为UTF-8,你的应用程序/脚本的各个层面。
  • 将文档保存为UTF-8或UTF-8 W/O BOM(如果你使用记事本+ +,它的格式 - >转换为UTF-8)
    • 需要注意的是,即使他们都是UTF -8,他们可以有不同的表现!
  • PHP和HTML的标题应设置为UTF-8
    • HTML:<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    • PHP:header('Content-Type: text/html; charset=utf-8');
  • 您可能需要您的php.ini来指定字符集文件,使用default_charset = "utf-8",虽然这是PHP 5.6中的标准
  • 所有可以设置为特定字符集的文件都应该设置为相同

您的代码可能有不同的方面需要设置为特定的字符集。