2012-08-22 41 views
1

我与来自MAC OS导出CSV文件工作 - 文件制作专业节目。 CSV似乎格式正确。它导入到PHP和我的MySQL数据库好吧。它还导入到使用的LibreOffice Calc中我的Ubuntu操作系统。但是,在所有情况下,我最终都会遇到奇怪的角色。它应该是一个UTF-8字符集,但我不知道。任何人都可以帮助解释发生了什么样的转化?PHP fgetcsv:奇怪的字符时读取MAC OS导出CSV文件

例子:

...先驱打印,[1880’的?]。第一个也是唯一版本...

....这manufacturer’的使用....

编辑参与的优秀遗物:

综观上述的部分:

[1880’s?] 

manufacturer’s 

lost. 




od -ctx1 part.txt 

0000000 [ 1 8 8 0 342 200 231 s ? ] \r m a n u 

     5b 31 38 38 30 e2 80 99 73 3f 5d 0d 6d 61 6e 75 

0000020 f a c t u r e r 342 200 231 s \r l o s 

     66 61 63 74 75 72 65 72 e2 80 99 73 0d 6c 6f 73 

0000040 t .  \v \r \r 

     74 2e 20 0b 0d 0d 

0000046 
+0

是输出的编码定义为相同文本的编码? – alex

+0

尝试使用类似'od -ctx1 file.txt'的方式查看数据的转储,这会向您显示C风格转义字符以及十六进制转储。有了这一点,你应该能够确定这是否是UTF8或别的东西。 – ghoti

+0

在文本编辑器中打开CSV文件,让文本编辑器以不同的编码解释文件。当它看起来没问题时,你已经找到了文件实际所在的编码。 – deceze

回答

0

编码确实是UTF8和你的引号是正确的有:

http://www.tachyonsoft.com/uc0020.htm

您看到的转换看起来像UTF8解释为ISO-8859-1 [5]或Latin1,因此在您阅读它后,请检查您的MySQL是否使用UTF8作为字符集,并且提取阶段将其保存为UTF8(例如,如果你将数据发送到网页广告ISO-8859-15,你会看到正是 - 的欧元符号后面的垃圾)。