【发布时间】:2014-09-09 21:54:30
【问题描述】:
我正在尝试将一堆 csv 文件加载到数据库中。解析文件和输入数据都很好......除了一些文件编码给我带来了麻烦。
UTF-8 文件工作正常,大多数文件都是这种格式。但是,有些文件位于 ASCII 中,并且这些文件无法正确加载。
有没有办法检查文件本身的编码,并在使用数据之前转换编码?我一直在玩mb_convert_encoding 和iconv,但这些都需要一个字符串作为输入。宁愿检查文件并立即转换,而不是在我获取数据时逐行检查。
谢谢。
【问题讨论】:
-
mb_detect_encoding(),但它不是 100% 可靠的。获取错误的源编码然后进行转换可能只会损坏文件。 -
我试过了,但没有用。事实上,我尝试过的任何事情都没有奏效,即使是字符串转换。
-
您能举一个“ASCII”文件加载不正确的例子吗? ASCII 无法正确加载几乎是不可能的,尤其是在 UTF-8 正确加载的情况下。它可能是一个 CP-1252 文件,which I wrote a long answer on here。
标签: php csv encoding utf-8 ascii