CSV上传显示变音但不上传 - 和“或”

时间:2015-06-10 15:55:56

标签: php mysql csv fgetcsv

我遇到了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。只需使用记事本:)

0 个答案:

没有答案