I have to store hindi text in a MySQL database, fetch it using a PHP script and display it on a webpage. I did the following:
I created a database and set its encoding to UTF-8 and also the collation to
Then I set about adding data to it. Here I had to copy data from an existing site. The hindi text looks like this: सूर्योदय:05:30
I directly copied this text into my database and used the PHP code
When I inserted the UTF equivalent of the text by going to "view source" in the browser, however, सूर्योदय translates into
If I enter and store
So what I want to know is how I can directly store सूर्योदय into my database and fetch it and display it in my webpage using PHP.
Also, can anyone help me understand if there's a script which when I type in सूर्योदय, gives me
Solutio:
I wrote the following sample script which worked for me. Hope it helps someone else too
I created a database and set its encoding to UTF-8 and also the collation to
utf8_bin. 
I added a varchar field in the table and set it to accept UTF-8 text in the charset property.Then I set about adding data to it. Here I had to copy data from an existing site. The hindi text looks like this: सूर्योदय:05:30
I directly copied this text into my database and used the PHP code
echo(utf8_encode($string)) to display the data. Upon doing so the browser showed me "??????".When I inserted the UTF equivalent of the text by going to "view source" in the browser, however, सूर्योदय translates into
सूर्योदय.If I enter and store
सूर्योदय in the database, it converts perfectly.So what I want to know is how I can directly store सूर्योदय into my database and fetch it and display it in my webpage using PHP.
Also, can anyone help me understand if there's a script which when I type in सूर्योदय, gives me
सूर्योदय?Solutio:
I wrote the following sample script which worked for me. Hope it helps someone else too
<html>
  <head>
    <title>Hindi</title></head>
  <body>
    <?php
      include("connection.php"); //simple connection setting
      $result = mysql_query("SET NAMES utf8"); //the main trick
      $cmd = "select * from hindi";
      $result = mysql_query($cmd);
      while ($myrow = mysql_fetch_row($result))
      {
          echo ($myrow[0]);
      }
    ?>
  </body>
</html>CREATE TABLE `hindi` (
  `data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `hindi` VALUES ('सूर्योदय'); 
No comments:
Post a Comment