2015-08-09 107 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中的標準
  • 所有可以設置爲特定字符集的文件都應該設置爲相同

您的代碼可能有不同的方面需要設置爲特定的字符集。