如何从 PHP 中的 MySql 中读取波斯语字符串?

How to read a Persian string from MySql in PHP?

我在数据库中的 table 行中插入了波斯语字符串,其中列 collection 设置为 utf8mb4_persian_ci。

但是当我想从 MySql 数据库读取数据到 php 时,它没有正确显示波斯字符串而只显示 ? ? ? ?

我阅读了很多文章来解决这个问题,但它对我不起作用 我在连接到数据库后使用了这段代码

 $mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
 $mysqli->set_charset("utf8");

并且此代码位于 php 个代码中的 header

 header("Content-Type: text/html;charset=UTF-8");

并且此代码位于 html 代码之上

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

但它不起作用,我在从 MySql 到 php

的 php 页面中看不到波斯语字符串

如何解决这个问题?

这是我用来让它正常工作的代码,因为我使用了你所有的代码,这意味着你的 mysql 数据库配置不正确,请使用正确的排序规则重新创建你的数据库,确保table 排序规则也相同,字段类型为 TEXT

代码如下:

<?php
$mysqli = new mysqli('localhost', 'root', '', 'persian');
$mysqli->set_charset("utf8");
header("Content-Type: text/html;charset=UTF-8");
$mysqli->query("INSERT INTO user SET name='فارسی / پارسی'");
$result = $mysqli->query("SELECT * FROM user");
$result = $result->fetch_object();
echo '<pre dir="ltr">';var_dump($result);echo '</pre>';
echo $result->name;?>

$mysqli->set_charset("utf8"); header("Content-Type: text/html;charset=UTF-8");

而不是 $mysqli->set_charset("utf8"); 尝试 $mysqli->set_charset("windows-1256");