我有一个问题。我有excel文件保存为CSV,我需要用PHP读取该文件,并插入到mysql中,但问题是与字符集专门čćšđž。我尝试了utf8_encode()和几乎所有我能想到的。阅读.csv ANSI文件并写入mysql
Examle:
它插入 “Petroviæ”,但它应该是 “彼得洛维奇”
编辑:
<?php
mysql_connect("localhost", "user", "pw");
mysql_select_db("database");
$fajl = "Prodajna mreza.csv";
$handle = @fopen($fajl, "r");
if ($handle) {
$size = filesize($fajl);
if(!$size) {
echo "File is empty.\n";
exit;
}
$csvcontent = fread($handle,$size);
$red = 1;
foreach(explode("\n",$csvcontent) as $line) {
if(strlen($line) <= 20)
{
$red++;
continue;
}
if($red == 1)
{
$red++;
continue;
}
$nesto = explode(",", $line);
if($nesto[0] == '')
continue;
mysql_query("INSERT INTO table(val1, val2, val3, val4, val5, val6, val7, val8) VALUES ('".$nesto[0]."','".$nesto[1]."','".$nesto[2]."','".$nesto[3]."','".$nesto[4]."','".$nesto[5]."','".$nesto[6]."','".$nesto[7]."')");
$red++;
}
fclose($handle);
}
mysql_close();
?>
你现在的问题是什么,编码?你检查了数据库表格的整理和文件的编码吗? – 2012-07-19 13:28:14
@DiegoAgulló尝试更改排序规则,但没有任何反应。 – 2012-07-19 13:31:58
这里有两个方面:读取文件并将其内容存储在数据库中。这两者都可能对您造成问题。因此,为了避免任何问题,您可能希望在PHP中生成一个固定值,例如作为''Petrovi \ xc4 \ x87“'(假设一个UTF-8数据库连接),看看你能否成功地存储它。这应该有助于缩小范围。根据是否有效,我们可能需要详细了解您如何阅读文件或者如何连接到数据库。 – MvG 2012-07-20 10:54:42