在Web服務器上,我有一個解析.sql文件(直接存儲在服務器上)的php腳本,並執行在一個mysql數據庫上的查詢。我有很多法國人物插入不好:é變成é©。解析一個uft-8文件並將其插入到數據庫中會破壞特殊字符,如'
當我用記事本++打開sql文件時,發現編碼是「沒有BOM的uft-8」。
我的劇本是這樣的:
$handle = fopen("test.sql", "r") or die("couldn't get handle");
if ($handle)
{
while (!feof($handle))
{
$buffer = fgets($handle, 4096);
if (strlen ($buffer) < 3) // if we have a blank line
{
mysql_query($query);
$query = $buffer;
sleep(0.5);
}
else
{
$query .= $buffer;
}
}
mysql_query($query); // last insert
fclose($handle);
}
當我打開通過phpmyadmin數據庫,我看到特殊字符在腳本執行之後已經破裂。
非常感謝!工作完美無缺 – Phillaf 2010-07-17 20:02:52