我遇到了csv上传脚本的问题,我需要将德语文本上传到mysql数据库进行翻译。
一切都是UTF8,但是当它运行脚本并插入数据库时。所有角色都在那里,umluats显示正常,但 - (& mdash)和“或”只是空白。
我尝试上传的文字片段
CSV中的实际文字=“测试 - Seitüber”Es ist“Das Unternehmen。”
上传后的数据库=“测试SeitüberEsist Das Unternehmen。”
它上传变音符号,但只是在短划线和引号之间放置一个空格。
CSV也以utf-8
编码如果我关闭utf8_encode(),则插入符会在第一个特殊字符处中断。
这是我的剧本
header('Content-Type: text/html; charset=utf-8');
require_once("../cfg/database.php");
mysql_query("SET NAMES 'utf8'");
extract($_POST);
$file = $_FILES['csv']['tmp_name'];
$handle = fopen($file,"r");
$data = array();
$count = 0;
if (!empty($_FILES['csv']['size'])) {
while (($data = fgetcsv($handle,1000,",")) !==FALSE) {
if ($count != 0) {
mysql_query("INSERT INTO table_name SET `text` = '" . utf8_encode($data[5]) . "'") or die(mysql_error());
}
$count++;
}
}
任何帮助都会非常感激,因为我搜索过并找不到解决方案。
编辑:请注意自己,不要依赖excel将csv的编码正确保存为UTF-8。只需使用记事本:)