我有一個問題。我有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