【发布时间】:2010-10-28 01:40:35
【问题描述】:
我想让用户能够将 csv 文件导入我的 php/mysql 系统,但是当语言是俄语时遇到了一些编码问题,而 excel 只能存储在 UTF-16 制表符编码的选项卡文件中。
现在我的数据库在 latin1 中,但我会将其更改为 utf-8,如问题“a-script-to-change-all-tables-and-fields-to-the-utf-8-bin”中所述-collation-in-mysql"
但是我应该如何导入文件呢?并存储字符串?
我应该例如将其翻译成 html_entitites 吗?
我正在使用fgetcsv 命令从 csv 文件中获取数据。
我的代码现在看起来像这样。
file_put_contents($tmpfile, str_replace("\t", ";", file_get_contents($tmpfile)));
$filehandle = fopen($tmpfile,'r');
while (($data = fgetcsv($filehandle, 1000, ";")) !== FALSE) {
$values[] = array(
'id' => $data[0],
'type' => $data[1],
'text' => $data[4],
'desc' => $data[5],
'pdf' => $data[7]);
}
请注意,如果我将 xls 文件作为 csv 存储在 excel 中,我的特殊字符将替换为“_”,所以我可以从文件中获取俄语字符的唯一方法是将文件存储在 excel 中UTF16 格式的选项卡式分隔文件。
【问题讨论】: