如何从 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");
我在数据库中的 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");