2011-10-14 78 views
1

我在現有的PHP的網站工作,並且它具有吐出數據,並保存到文本文檔中導出頁面。 (TXT & XTG)轉換ob_get_clean導致PHP

$output = ob_get_clean(); 

我試圖解決的問題是輸出的編碼,顯然charcters無法正確顯示。我敢肯定,該數據庫是在正確的UTF-8格式。

的問題出現這樣La Fédération

我嘗試以下,但它沒有工作 - 輸出仍然是錯誤的 - 任何想法?

$output = mb_convert_encoding($output, "UTF-8"); 

這是相關代碼的其餘部分

// Ouput file. 
// Set DOS line endings for Quark 6 
file_put_contents("/var/www/vhosts/artsdb.net/httpdocs/export/" . $type . "/" . $filename . ".xtg.txt", str_replace(array("\n", "\r\n\r\n"), array("\r\n", "\r\n"), $output)); 

echo "Exporting " . str_replace("_", " ", $filename) . " ($type) complete.\n\n"; 

感謝您尋找

+0

如果是這樣的數據的顯示形式的數據庫,則它意味着該數據是錯誤的(例如,如果數據是通過在Latin1的連接發送UTF-8插入,但使用UTF-8連接檢索),或者您的頁面未設置爲以UTF-8顯示。 –

+0

你說:「我敢肯定,該數據庫是在正確的UTF-8格式。」你完全確定嗎?你是否檢查了數據庫,看看是否值保存方法正確? – Bogdan

+0

我只是有一個雙重檢查現在 – mro

回答

2

我正確地假設數據顯示網站本身和瀏覽器顯示的網頁是UTF-8 。

要解決這個問題,我會先刪除任何編碼轉換,然後嘗試在Web瀏覽器中打開文本文件,以消除有關如何查看文件的任何問題,並確認它確實以UTF- 8。

如果上述瀏覽器顯示在文本文件中的內容是不是UTF-8,儘量呼籲$輸出函數utf8_encode寫入到文件之前。

+0

的表格和整理似乎在UTF8進行設置,並在網站上顯示的數據似乎是罰款(使用好像htmlentitites)但是出口文本文件只是顯示了奇怪的字符依然。函數utf8_encode似乎沒有任何影響嗎? – mro