如何区分PHP中的MacRoman和Windows-1251编码?

时间:2011-04-26 18:19:54

标签: php encoding csv import-from-excel

我现在已经拉了几天头发。我用google搜索并且堆栈溢出很多而没有成功。

我正在从csv文件导入一些数据。此CSV文件在Windows或Mac上的Excel中生成,它提供2种不同的编码“Windows-1251”和“MacRoman”。两者都是ISO-8859-1和mb_detect_encoding dos的变种没有帮助:它总是检测我放在列表中的第一个编码。

例如:

mb_detect_encoding($buffer, 'macroman, windows-1251, UTF-8');

会给“宏观人”。

使用相同的字符串,尝试:

mb_detect_encoding($buffer, 'windows-1251, macroman, UTF-8');

将给出“window-1251”。

那你怎么能正确地发挥作用呢?我需要将输入字符串(csv文件内容)转换为utf-8以插入数据库。

也许我错过了什么?你们通常如何设法解析csv文件,并在DB(utf8)中正确保存数据。

感谢您的任何线索!

1 个答案:

答案 0 :(得分:0)

我认为确保正确处理的唯一方法是首先定义一个保存csv文件的过程。然后你只需要utf8_encode即将发生的事情就会好起来......