【发布时间】:2011-02-26 15:29:33
【问题描述】:
在内部,我们的 PHP 应用程序使用 UTF-8,我们对 .csv 文件和固定宽度(文本)文件进行处理。我们编写了一些很好的库来处理这些文件(本质上是类)。
我们最近增加了管理员上传这些类型文件的功能,以便处理这些文件并快速在多个操作系统中遇到问题。我们很快意识到,读入的文件与我们的应用程序具有不同的编码(即 Windows-1252 或 ISO-8859)。
由于无法控制提交给我们的文件编码是什么,我的问题是;处理上传的不同编码文本文件的最佳方法是什么?目前我能想到两种解决方案:
- 收到文件后,检测其编码并将其转换为 UTF-8,然后重新保存。系统的其余部分只需要支持 UTF-8 并且可以忽略“编码”问题。
- 更改 csv / 固定宽度库,以便它们自己能够感知编码
我也考虑过这些的优缺点:
- 转换输入使其余库更小并减少重复,但在处理方面似乎很浪费
- 让库内部感知 - 这似乎涉及更多代码,但可能更快
有什么想法吗?
编辑:我真的很想知道在架构上应该在哪里应用字符编码/转换 - 是在输入点还是在文件使用期间?
【问题讨论】:
标签: php text encoding utf-8 character-encoding