【发布时间】:2013-09-11 12:27:21
【问题描述】:
我正在用 php 读取一个 CSV 文件,据我所知 - 这些文件可以有任何由 hoomans omg 发明的编码等等......我猜我有一个 MacRoman ANSI 编码的 CSV,我正在使用 Mac。
到目前为止,一切都很好(一点都不好,但那是另一个话题)。现在,在遍历这些行时,我有一个值:
Z�rich
显然,它应该是“Zürich” - 缺少“ü”..
现在,我几乎尝试了任何东西.. mb_detect_encoding 说“假”,所以他不明白它是什么...
然后我在这里找到了 Sebastian Grignoli 的天才班 -> Detect encoding and make everything UTF-8
看起来不错,但是……我得到的只是:
ZŸrich
不是我所期望的“ü”:D
现在我发现,“utf8_encode”会以某种方式工作,它会生成:
Z\u009Frich
但是.. 现在呢?如果我将它直接放入数据库,最终值为“Zrich”,这意味着它仍然不是真正的 UTF-8,或者数据库只是在与转义变体作斗争?当我对该值进行 mb_detect_encoding 时,他现在说“UTF-8”.. 很好.. 但我怎样才能走得更远?如何在 UTF-8 中以正确的方式获取“苏黎世”?
【问题讨论】:
-
存储这些值的数据库列的编码是什么?
-
建表时将字符集改为utf8
-
在我的应用程序中,一切都是 utf-8,从表格到代码再到浏览器 - 一切......当我读取用户上传的文件时,就会出现这里的问题,它是由任何客户端计算机上的 MS Excel 创建的,因此,该文件可以在所有内容中进行编码,我无法控制:/(来源:stackoverflow.com/questions/508558/…)