iconv與mb_convert_encoding的使用

  今天,有個需求是要抓取網頁內容,結果遇到了中文亂碼的問題。下面,是我處理測試的通過。
  一、iconv("gb2312", "UTF-8",'測試')php

$getcontent = iconv("gb2312", "UTF-8",'測試');
print_r($getcontent);

  報錯:iconv(): Detected an illegal character in input string
  緣由:考慮到GB2312字符集比較小
  解決辦法:將GB2312字符集改爲GBK。html

二、iconv("GBK", "UTF-8",'測試')函數

$getcontent = iconv("GBK", "UTF-8",'測試');
print_r($getcontent);

  報錯:亂碼狀態
  解決辦法:通常狀況下用 iconv,只有當遇到沒法肯定原編碼是何種編碼,或者iconv轉化後沒法正常顯示時才用mb_convert_encoding 函數測試

三、mb_convert_encoding($contents, "UTF-8","auto")編碼

$getcontent = mb_convert_encoding($contents, "UTF-8","auto");
print_r($getcontent);

成功了!有錯誤的地方或者更好的辦法,但願能夠多多指教(*^▽^*)code

Tip:mb_convert_encoding的使用方法
參考網址:http://www.php.cn/manual/view/5241.htmlhtm

      string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
      說明:將 string 類型 str 的字符編碼從可選的 from_encoding 轉換到 to_encoding。ip

      str:要編碼的 string 。
      to_encoding:str 要轉換成的編碼類型。
      from_encoding:在轉換前經過字符代碼名稱來指定。它能夠是一個 array 也能夠是逗號分隔的枚舉列表。 若是沒有提供 from_encoding,則會使用內部(internal)編碼。get

相關文章
相關標籤/搜索