Мне нужно хранить хинди-текст в базе данных MySQL, извлекать его с помощью PHP script и отображать его на веб-странице. Я сделал следующее:
Я создал базу данных и установил ее кодировку в UTF-8, а также сопоставление с utf8_bin
.
Я добавил поле varchar в таблицу и установил, чтобы он принял текст UTF-8 в свойстве charset.
Затем я решил добавить к нему данные. Здесь мне пришлось копировать данные из существующего сайта. Текст хинди выглядит так: सूर्योदय: 05: 30
Я прямо скопировал этот текст в свою базу данных и использовал код PHP echo(utf8_encode($string))
для отображения данных. После этого браузер показал мне "??????".
Когда я вставил эквивалент UTF текста, перейдя в "просмотр источника" в браузере, однако, सूर्योदय переводит на सूर्योदय
.
Если я вхожу и сохраняю सूर्योदय
в базе данных, он отлично преобразуется.
Итак, я хочу знать, как я могу напрямую хранить सूर्योदय в своей базе данных и извлекать ее и отображать на моей веб-странице с помощью PHP.
Кроме того, может ли кто-нибудь помочь мне понять, существует ли script, который при вводе в सूर्योदय дает мне सूर्योदय
?
найденное решение
Я написал следующий образец script, который работал у меня. Надеюсь, это тоже поможет кому-то еще.
<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>
Дамп для моей базы данных, хранящей строки hindi utf,
CREATE TABLE `hindi` (
`data` varchar(1000) character set utf8 collate utf8_bin default NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
INSERT INTO `hindi` VALUES ('सूर्योदय');
Теперь мой вопрос: как он работал без указания "META" или информации заголовка?
Спасибо!