首頁  >  文章  >  後端開發  >  魔獸世界無法讀取所需檔案 php 讀取檔案亂碼問題

魔獸世界無法讀取所需檔案 php 讀取檔案亂碼問題

PHPz
PHPz原創
2016-07-29 08:41:581440瀏覽

網路上的解決方法說抓取後用iconv()轉碼。看後我就覺得不對勁:一個是不一定編譯了iconv庫,更大的問題是編碼都跟流轉換的時候有關(如果用了iconv實際上php轉了兩次碼:流-> UTF-8 - > GB2312):這不是白忙乎了嗎?

仔細看了下php的文檔(不知道大家都是怎麼寫程式碼的,其實文檔上很清楚啊),上面關於fopen()及file_get_contents()都提到了「預設是UTF-8 ,但是使用者可以用stream_default_encoding()或使用者自訂上下文屬性改變編碼」(If unicode semantics are enabled, the default encoding of the read data is UTF-8. You can specify a different encoding by creating a cus context or by the default using stream_default_encoding().)。於是用stream_default_encoding('gb2312′);測試:但是 faint的是,這個函數不存在? !似乎php 6才支援。不過天無絕人之路,還有「用戶自訂上下文屬性」可以用。
經過更仔細的看文檔,最後解決了這個問題:

程式碼如下:

//設定流的編碼格式,這是檔案流(file),如果是網路訪問,file改成http

$opts = array('file' => array('encoding' => 'gb2312')); 
$ctxt = stream_context_create($opts); 
file_get_contents(文件名, FILE_TEXT, $ctxt);

以上就介紹了魔獸世界無法讀取所需文件php 讀取文件亂碼問題,包括了魔獸世界無法讀取所需文件方面的內容,希望對PHP教學有興趣的朋友有幫助。


陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn