【发布时间】:2015-03-16 11:08:07
【问题描述】:
我有一个希腊文的 csv 文件。文件的编码是 ASCII。我的 DB 编码设置为 utf8_general_ci。如何转换 utf8 中的每一行以便存储在数据库中?
$file = fopen($_FILES['csv']['tmp_name'],"r");
$i=0;
while(! feof($file)){
$load = fgetcsv($file);
foreach($load as $csv){
$cv = explode(";", $csv);
if($i>=10){
$row = $students->addStudent($cv[3], $cv[2], $cv[4], NULL, $_COOKIE['school_id'], $_COOKIE['class_id']);
}
$i++;
}
}
在文本编辑器中打开 csv 文件并更改格式是不适用的,因为访问者应该这样做,而且很可能他们不知道如何操作。
也试过
/*switch(mb_detect_encoding ($_FILES['csv']['tmp_name'])){
case "ASCII":
echo "ASCII";
$file = iconv("ASCII", "ISO-8859-7", $_FILES['csv']['tmp_name']);
break;
case "UTF-8":
echo "UTF-8";
$file = $_FILES['csv']['tmp_name'];
break;
default:
$file = utf8_encode($_FILES['csv']['tmp_name']);
break;
}*/
但没有结果
【问题讨论】:
-
fgetcsv() 返回一个数组,你不必分解它的结果。