How to display Unicode data with PHP [duplicate]
table 'abc' data :
tid title
1 வெள்ளிக்கிழமை ஐ.
2 கோலாகல தொடக்க
$sql=mysql_query("select title from abd where tid='1'");
$row=mysql_fetch_array($sql);
$title = $row['title'];
echo $title;
OutPut displaying like this:
????????????????
But I want to display
வெள்ளிக்கிழமை ஐ.
Solution
<?php
mysql_query ("set character_set_results='utf8'");
$sql=mysql_query("select title from abd where tid='1'");
$row=mysql_fetch_array($sql);
$title = $row['title'];
echo $title;
?>
Solution 1:
Try to set charachter encoding after mysql_connect
function like this:
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
Solution 2:
For new version of PHP which used mysqli
, use this code after connect to mysql:
mysqli_set_charset($link, 'utf8');
Solution 3:
Try to make sure the browser recognizes the page as Unicode.
Generally, this can be done by having your server send the right Content-type
HTTP header, that includes the charset you're using.
For instance, something like this should work :
header('Content-type: text/html; charset=UTF-8');
echo "வெள்ளிக்கிழமை ஐ";
If this works, and your dynamically generated page still doesn't :
- make sure your data in your MySQL database is in UTF-8 too
- this can be set for each table, or even columns, in MySQL
- and make sure you are connecting to it using UTF-8.
Basically, all your application should use the same encoding :
- PHP files,
- Database
- HTTP server
Solution 4:
execute query
SET NAMES 'utf8'
right after connecting to database