2011-11-17 61 views
2

Windows註冊表編輯器在導出註冊表項時創建了Windows Unicode(UTF-16-le)文件。我試圖找出使用PHP將這些文件導入到mysql數據庫的最佳方法,以便稍後可以將它們作爲unicode文件再次下載?如何通過php讀取Windows unicode文件並將它們存儲在utf-8數據庫中?

當我將它們導入到數據庫中時,我使用file_get_contents()並將它們存儲到utf-8列中。當我導出它們時,我首先使用mb_convert_encoding($row['reg'], 'UTF-16')併發出頭文件來下載文件。當我在Windows中打開它們時,內容只是亂碼。

任何想法正確的方式來處理?

+0

當您插入數據時,您正在執行mb_convert_encoding()嗎? –

+0

你有沒有檢查腐敗發生的地方?你的數據庫連接是UTF嗎?表格UTF? etc ... –

+0

是的,一切都是UTF全線。名稱,連接,表等 我不是通過mb_convert_encoding輸入。那裏會有什麼進程?使用file_get_contents將文件讀入字符串,並使用$ str = mb_convert_encoding($ str,'UTF-8','UTF-16)? –

回答

2

以爲我會分享我能弄清楚的解決方案。訣竅是使用UTF-16LE作爲原始字符集。

mb_convert_encoding(file_get_contents($file), 'UTF-8', 'UTF-16LE'); 
相關問題