我现在已经拉了几天头发。我用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)中正确保存数据。
感谢您的任何线索!
答案 0 :(得分:0)
我认为确保正确处理的唯一方法是首先定义一个保存csv文件的过程。然后你只需要utf8_encode即将发生的事情就会好起来......