2011-11-17 39 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'); 
相关问题