我必须将印地语文本存储在MySQL数据库中,使用PHP脚本获取它,并将其显示在网页上.我做了以下几件事:

我创建了一个数据库,将其编码设置为UTF-8,并将排序规则设置为utf8_bin.

然后我开始向它添加数据.在这里,我必须从一个existing site的数据库中复制数据.

我直接将此文本复制到数据库中,并使用PHP代码echo(utf8_encode($string))显示数据.这样做后,浏览器向我显示了"??".

然而,当我通过在浏览器中的"查看源代码"插入文本的UTF类似功能时,सूर्योदय 翻译成सूर्योदय.

如果我在数据库中输入并存储सूर्योदय,它将完全转换.

所以我想知道的是如何直接存储सूर्योदय 进入我的数据库,获取它并用PHP显示在我的网页上.

还有,有谁能帮我理解一下,当我输入时,是否有一个脚本सूर्योदय, 给我सूर्योदय

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 ('सूर्योदय');

现在我的问题是,在没有指定"元"或标题信息的情况下,它是如何工作的?

谢谢

推荐答案

你在HTML标题部分设置了正确的字符集吗?

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">

或者,可以使用以下命令在php脚本中设置内容类型:-

   header( 'Content-Type: text/html; charset=utf-8' ); 

这里已经有一些关于StackOverflow的讨论,请看一看

How to make MySQL handle UTF-8 properly

PHP/MySQL with encoding problems

所以我想知道的是我怎样才能

我不知道你说的"直接存储在数据库中"是什么意思..你的意思是使用PhpMyAdmin或其他类似工具输入数据吗?如果是的话,我已经try 使用PhpMyAdmin输入unicode数据,所以对我来说效果很好——您可以try 使用PhpMyAdmin输入数据,并使用php脚本检索数据以确认.如果需要通过Php脚本提交数据,只需在创建mysql连接时、执行insert查询之前以及 Select 数据时设置名称和字符集.看看上面的帖子,找出语法.希望有帮助.

**更新**

Mysql相关问答推荐

在联合查询中使用GROUP BY和ORDER BY

将值代入子查询

用于搜索从各种表中获得的结果的查询

用于将具有多个状态更改日期列的单行转换为具有状态和时间戳的多行的SQL查询

SQL MaxSum查询为列 Select 了不正确的值

使用复合主键更新后的MySQL触发器失败

如何从MySQL数据库中提取入职第一个月的工作天数?

根据现有行 Select 月份日期

DJANGO 使用原始 MYSQL 查询计算记录数并在 html 模板中使用结果

将时间戳四舍五入到最接近的半小时而不遗漏丢失的数据

如果其中一个表为空,则 mysql 中的查询会给出 0 个结果

mySql 查询运行速度超慢

获取 TEXT 类型行的百分比

检索按键列值分组的最新日期 (MySql)

当用它的别名替换 (MAX(s.salary) - MIN(s.salary) 它将不起作用.. 为什么?

按年份范围 SQL 查询分组

如何在更新语句中使用多个子字符串函数?

INNER JOIN 问题(MySQL 错误代码:1054)

PHP,MySQL 错误:列计数与第 1 行的值计数不匹配

使用 MySql,我可以对列进行排序但最后有 0 吗?