PHP - 显示从MySQL DB检索的Urdu文本

时间:2012-07-01 08:00:41

标签: php mysql database functional-programming

在MySQL数据库中存储了Urdu语言的书名。我将使用PHP在html页面上显示。

目前只显示问号(??????)代替乌尔都语文本。

<div class='product_title'><a href='details.php?pid=".$Row['s_id']."'>".$Row["books"]."</a></div>

正确显示这些字符需要做些什么?

4 个答案:

答案 0 :(得分:18)

步骤:1 - 转到表格结构并将归类 latin1_swedish_ci 更改为 utf8_general_ci

步骤:2 - 您必须在数据结果页面中包含以下标记。

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

步骤:3 - 插入'N'前缀。这里N代表国家语言字符集。这意味着您传递的是NCHAR,NVARCHAR或NTEXT值,more

步骤:4 - 显示数据库记录的PHP代码。在此之前,您必须指定mysql_query()函数数据字符集类型

<?php
include('db.php');
mysql_query ("set character_set_results='utf8'"); 
$query = mysql_query("SELECT * FROM books") or die(mysql_error());
while($row=mysql_fetch_array($query))
{
echo $row['id']; // Book id 
echo $row['books_title']; // Book title
}
?>

答案 1 :(得分:1)

此外,您的文件编码必须为utf-8,不含BOM

答案 2 :(得分:0)

我已经遇到了这个问题,并且通过将它们转换为UTF-8来解决了该错误。

ALTER TABLE test_Table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE test_Table_name DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

ALTER TABLE test_Table_name CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

答案 3 :(得分:0)

我遇到了同样的问题,并通过操纵整个PHP-MySQL环境的字符编码来解决了这个问题。

默认情况下,PHPMyAdmin中的字符集编码通常是拉丁瑞典语或utf8常规,但是,字符集编码不支持其他语言,例如Urdu,中文等,因此您需要更改MySQL数据库的字符编码或表格或列,具体取决于您的要求。

# For each database:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
# For each table:
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# For each column:
ALTER TABLE table_name CHANGE column_name column_name VARCHAR(191) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
# (Don’t blindly copy-paste this! The exact statement depends on the column type, maximum length, and other properties. The above line is just an example for a `VARCHAR` column.)

您还需要为使​​用mysqli_query检索的数据设置字符编码。您可以通过在连接线正下方使用mysqli_charset()函数来执行此操作。喜欢...

 // Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);

/* change character set to utf8mb4 */
mysqli_set_charset($conn,"utf8mb4");

现在,您可以通过通过PHP Query从MySQL数据库检索来直接显示乌尔都语或任何其他语言。