When I am importing from CSV, it is showing me characters like ???
My DB and tables are aleady set to utf8 unicode ci and arabic and other data shows properly when i do select *
But when I import from CSV and use below code. It returns me uploaded successfully but data is shown as ??? in employee name
Please find code below
Import From CSV...
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
header('Content-Type: text/html; charset=utf-8');
mb_internal_encoding('UTF-8');
mb_http_output('UTF-8');
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
<style type="text/css">
body
{
margin: 0;
padding: 0;
background-color:#D6F5F5;
text-align:center;
}
.top-bar
{
width: 100%;
height: auto;
text-align: center;
background-color:#FFF;
border-bottom: 1px solid #000;
margin-bottom: 20px;
}
.inside-top-bar
{
margin-top: 5px;
margin-bottom: 5px;
}
.link
{
font-size: 18px;
text-decoration: none;
background-color: #000;
color: #FFF;
padding: 5px;
}
.link:hover
{
background-color: #9688B2;
}
</style>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-60962033-1', 'auto');
ga('send', 'pageview');
</script>
</head>
<body>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<div class="top-bar">
<div class="inside-top-bar">
<a href="" width="500px"></a>
<br><br>
<a href="../insert.php" class="link">← Back to main Website</a>
</div>
</div>
<h1> CSV Should be in Below Format:</h1><b>Full Name: Employee Number: Department: Email:</b>
<div style="border:1px dashed #333333; width:300px; margin:0 auto; padding:10px;">
<form name="import" method="post" enctype="multipart/form-data">
<input type="file" name="file" /><br />
<input type="submit" name="submit" value="Submit" />
</form>
<?php
include ("connect.php");
if(isset($_POST["submit"]))
{
$file = $_FILES['file']['tmp_name'];
$handle = fopen($file, "r");
$c = 0;
setlocale(LC_ALL, 'ar_AE.utf8');
while(($filesop = fgetcsv($handle, 1000, ",")) !== false)
{
$name = $filesop[0];
$emp_number = $filesop[1];
$department = $filesop[2];
$email = $filesop[3];
//$name = $filesop[0];
//$email = $filesop[1];
mysqli_query($link,"SET character_set_client=utf8");
$sql = $link->query("INSERT INTO employees (first_name, emp_number,department,email) VALUES ('$name','$emp_number','$department','$email')");
$c = $c + 1;
}
if($sql){
echo "You database has imported successfully. You have inserted ". $c ." Records";
echo '<td><a href="../view.php">← View Inserted Records</a></td>';
}else{
echo "Sorry! There is some problem.";
}
}
?>
</div>
<hr style="margin-top:300px;" />
<div align="center" style="font-size:18px;"><b><a href="">© ALL RIGHTS RESERVED BY DIBBA MUNICIPALITY FUJAIRAH</a></b></div>
</body>
</html>
The data I am testing is as follows محمود عبدالعزيز
1 abc def Where arabic one is the full name/first_name, 1 is employee number, abc is department and def is email