22
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;

?>
Charles
  • 50,943
  • 13
  • 104
  • 142
Egglabs
  • 3,126
  • 10
  • 33
  • 48

7 Answers7

37

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'"); 
antyrat
  • 27,479
  • 9
  • 75
  • 76
10

For new version of PHP which used mysqli, use this code after connect to mysql:

mysqli_set_charset($link, 'utf8');
MohsenB
  • 1,669
  • 18
  • 29
7

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
Pascal MARTIN
  • 395,085
  • 80
  • 655
  • 663
3

execute query

SET NAMES 'utf8'

right after connecting to database

Silver Light
  • 44,202
  • 36
  • 123
  • 164
0
<?php header('Content-type: text/html; charset=UTF-8');echo "<font face='Bamini' size='5'>" . "m.Nkhfd; Fkhh;" ."<br />";
echo "<font face='Bamini' size='10'>" . "m.Nkhfd; Fkhh;" ."<br />";
?>

or

<?php
header('Content-type: text/html; charset=UTF-8');
echo "வெளà¯à®³à®¿à®•à¯à®•ிழமை à®";
?>
0

First you need to convert your mysql data format to utf-8, see this great article by oreilly:

.

Turning MySQL data to UTF-8

.

After that make sure that your page's encoding type is utf-8:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
Sarfraz
  • 377,238
  • 77
  • 533
  • 578
  • @Srinivas Tamada: The final answer you chose did the same thing what has been told in the oreily article i posted the link above. Anyways, it is good that you found the solution. Thanks.. – Sarfraz Mar 15 '10 at 12:02
  • Link is dead, which is why answers should not be links. – NateS Mar 23 '20 at 11:42
-1

While inserting the data into a MySQL database using the relevant collation (ex. utf8_general_ci for Unicode characters, i.e Hindi). Also in use the PHP predefined function utf8_decode to display the characters in HTML.

ndrwnaguib
  • 5,623
  • 3
  • 28
  • 51