PHP fgetcsv:在MAC OS导出的CSV文件中读取时出现奇怪的字符

时间:2012-08-22 04:20:26

标签: php macos encoding csv character-encoding

我正在使用从MAC OS导出的CSV文件 - File Maker Pro程序。 CSV似乎格式正确。它导入PHP并进入我的MySQL数据库确定。它还使用LibreOffice Calc导入我的Ubuntu操作系统。但是,在所有情况下,我最终都会遇到奇怪的角色。它应该是一个UTF-8字符集,但我不确定。任何人都可以帮助解释发生了什么样的转变?

示例:

... Herald Print。,[1880年代?]。第一个也是唯一的版本......

....这个制造商参与的优秀遗物......

编辑:

看看上面的部分内容:

[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

1 个答案:

答案 0 :(得分:0)

编码确实是UTF8,你的引号就在那里:

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

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