使用 PHP 和 MySQL 存储和显示 unicode 字符串 (हिन्दी)
我必须将印地语文本存储在MySQL数据库中,使用PHP脚本获取它并将其显示在网页上。我做了以下操作:
我创建了一个数据库,并将其编码设置为UTF-8,并将排序规则设置为.我在表中添加了一个 varchar 字段,并将其设置为接受字符集属性中的 UTF-8 文本。utf8_bin
然后我开始向它添加数据。在这里,我必须从现有站点复制数据。印地语文本如下所示:सूर्योदय: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”或标题信息的情况下工作?
谢谢!