Хранение и отображение строки Unicode (हिन्दी) с использованием PHP и MySQL

Я должен хранить текст хинди в базе данных MySQL, получить его с помощью сценария PHP и отобразить его на веб-странице. Я сделал следующее:

Я создал базу данных и установил ее кодировку UTF-8, а также сопоставлениеutf8_bin. I added a varchar field in the table and set it to accept UTF-8 text in the charset property.

Затем я приступил к добавлению данных к нему. Здесь я должен был скопировать данные изсуществующий сайт. The hindi text looks like this: सूर्योदय:05:30

Я непосредственно скопировал этот текст в свою базу данных и использовал код PHPecho(utf8_encode($string)) для отображения данных. После этого браузер показал мне «??????».

Когда я вставил UTF-эквивалент текста, перейдя по ссылке «просмотреть исходный код» в браузере, однако, & # x942; & # x930; & # x94D; & # x92F; & # x94B; & # x926; & # x92F; переводится наसूर्योदय.

Если я войду и сохранюसूर्योदय в базе данных он отлично конвертируется.

Так что я хочу знать, как я могу напрямую хранить & # x938; & # x942; & # x9430; & # x94D; & # x92F; & # x94B; & # x926; & # x92F; в мою базу данных и получить его и отобразить на моей веб-странице с помощью PHP.

Кроме того, может ли кто-нибудь помочь мне понять, есть ли сценарий, который, когда я набираю, & # x942; & # x930; & # x94D; & # x92F; & # x94B; & # x926; & # x92F ;, дает мнеसूर्योदय?

Solution Found

Я написал следующий пример сценария, который работал для меня. Надеюсь, это поможет кому-то еще

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

Дамп для моей базы данных, хранящей строки хинди UTF

CREATE TABLE `hindi` (
  `data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

INSERT INTO `hindi` VALUES ('सूर्योदय');

Теперь мой вопрос: как это работает без указания & quot; META & quot; или информация заголовка?

Спасибо!

Ответы на вопрос(4)

Ваш ответ на вопрос