Хранение и отображение строки 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; или информация заголовка?
Спасибо!