我必须在MySQL数据库中存储印地文本,使用PHP脚本获取它并在网页上显示它。 我做了以下事情:
我创建了一个数据库,并将其编码设置为UTF-8,以及将排序规则设置为
然后我开始添加数据。 这里我不得不从现有站点复制数据。 印地文本看起来像这样: सूर्योदय:05:30
我直接将此文本复制到我的数据库中,并使用PHP代码
但是,如果我通过在浏览器中查看源代码来插入文本的UTF等效项,则 सूर्योदय会被翻译为
如果我在数据库中输入并存储
所以我想知道如何直接将“सूर्योदय”存储到我的数据库中,并使用PHP获取它并在我的网页上显示它。 另外,有人可以帮助我理解是否有一种脚本,当我输入“सूर्योदय”时,会给我
现在我的问题是,在没有指定“META”或头信息的情况下,它是如何工作的?
谢谢!
我创建了一个数据库,并将其编码设置为UTF-8,以及将排序规则设置为
utf8_bin
。
我在表中添加了一个varchar字段,并将其设置为接受字符集属性中的UTF-8文本。然后我开始添加数据。 这里我不得不从现有站点复制数据。 印地文本看起来像这样: सूर्योदय:05:30
我直接将此文本复制到我的数据库中,并使用PHP代码
echo(utf8_encode($string))
显示数据。 这样做后,浏览器显示了"??????"。但是,如果我通过在浏览器中查看源代码来插入文本的UTF等效项,则 सूर्योदय会被翻译为
सूर्योदय
。如果我在数据库中输入并存储
सूर्योदय
,它将完美转换。所以我想知道如何直接将“सूर्योदय”存储到我的数据库中,并使用PHP获取它并在我的网页上显示它。 另外,有人可以帮助我理解是否有一种脚本,当我输入“सूर्योदय”时,会给我
सूर्योदय
吗? 我写了以下示例脚本,对我有用。 希望它也能帮助其他人。<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 ('सूर्योदय');
现在我的问题是,在没有指定“META”或头信息的情况下,它是如何工作的?
谢谢!