将CSV文件导入MySQL数据库时,UTF-8字符串无效

时间:2016-03-03 15:03:04

标签: php mysql csv utf-8

我尝试使用以下代码将CSV导入MySQL数据库:

我从帖子中获取了CSV文件。

<?php

//conexiones, conexiones everywhere
ini_set('display_errors', 1);
error_reporting(E_ALL);
$db_host = 'localhost';
$db_user = 'root';
$db_pass = 'password';

$database = 'test';
$table = 'csvtable';
if (!@mysql_connect($db_host, $db_user, $db_pass))
    die("No se pudo establecer conexión a la base de datos");

if (!@mysql_select_db($database))
    die("base de datos no existe");
    if(isset($_POST['submit']))
    {
        //Aquí es donde seleccionamos nuestro csv
         $fname = $_FILES['sel_file']['name'];
         echo 'Cargando nombre del archivo: '.$fname.' <br>';
         $chk_ext = explode(".",$fname);

         if(strtolower(end($chk_ext)) == "csv")
         {
             //si es correcto, entonces damos permisos de lectura para subir
             $filename = $_FILES['sel_file']['tmp_name'];
             $handle = fopen($filename, "r");

             while (($data = fgetcsv($handle, 1000, ",")) !== FALSE)
             {
               //Insertamos los datos con los valores...
                $sql = "INSERT into csvtable(id, example, example2) values('$data[0]','$data[1]','$data[2]'";
                mysql_query($sql) or die('Error: '.mysql_error());
             }
             //cerramos la lectura del archivo "abrir archivo" con un "cerrar archivo"
             fclose($handle);
             echo "Importación exitosa!";
         }
         else
         {
            //si aparece esto es posible que el archivo no tenga el formato adecuado, inclusive cuando es cvs, revisarlo para             
//ver si esta separado por " , "
             echo "Archivo invalido!";
         }
    }

?>

问题是我有像Sol·licitudAccés这样的字词而且我收到此错误:

  

错误:utf8字符串无效:&#39; Sol \ xB7licitant&#39;

你能帮帮我们吗?

1 个答案:

答案 0 :(得分:2)

不知道这是否适合这种情况,但是当我的文字文件显示错误的重音时,我只需使用UltraEditNotepad++将Enconde更改为UTF-8

enter image description here