首页  >  文章  >  后端开发  >  如何在 PHP 和 MySQL 中处理 Unicode 字符串(例如印地语)?

如何在 PHP 和 MySQL 中处理 Unicode 字符串(例如印地语)?

Barbara Streisand
Barbara Streisand原创
2024-10-22 20:44:04104浏览

How to Handle Unicode Strings (e.g., Hindi) in PHP and MySQL?

使用 PHP 和 MySQL 存储和显示 Unicode 字符串 (हिन्दी)

在 Web 应用程序中存储和显示印地语等非拉丁字符集可能具有挑战性,但它对于支持更广泛的受众至关重要。以下是有关如何使用 PHP 和 MySQL 实现此目的的综合指南:

设置数据库参数

  • 通过执行这些命令确保您的 MySQL 数据库具有正确的字符集和排序规则:

    <code class="sql">SET character_set_database=utf8;
    SET collation_database=utf8_unicode_ci;</code>
  • 在表定义中指定存储 unicode 数据的列为 VARCHAR,CHARACTER SET utf8mb4 和 COLLATE utf8mb4_unicode_ci。

数据插入和检索

  • 插入数据时,直接将Unicode字符串输入数据库,不做任何修改。
  • 要在PHP中检索数据,请在提取之前执行以下查询:

    <code class="php">mysql_query("SET NAMES utf8");</code>
  • 在显示之前使用 utf8_encode() 将 Unicode 字符串转换为 UTF-8 格式。

PHP 脚本示例

<code class="php"><?php
header('Content-Type: text/html; charset=utf-8');

// Database connection
include('connection.php');

// Execute query with UTF-8 encoding
mysql_query("SET NAMES utf8");
$result = mysql_query("SELECT * FROM `hindi`");

// Fetch and display results
while ($row = mysql_fetch_row($result)) {
    echo utf8_encode($row[0]);
}
?></code>

数据库转储

数据库转储应类似于以下内容:

<code class="sql">CREATE TABLE `hindi` (
  `data` VARCHAR(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL
);

INSERT INTO `hindi` VALUES ('सूर्योदय');</code>

故障排除

  • 确保 HTML 头部分包含正确的字符集:

    <code class="html"><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"></code>
  • 验证 Web 服务器是否已正确配置为处理 Unicode 字符串。
  • 如果问题仍然存在,请查阅相关文档或从 ​​StackOverflow 等论坛寻求帮助。

以上是如何在 PHP 和 MySQL 中处理 Unicode 字符串(例如印地语)?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn