我将persian字符串插入数据库中的表行,其中我的columns集合设置为utf8mb4_persian_ci。
但是当我想从MySql数据库读取数据到php时,它没有正确显示波斯语字符串而只是显示? ? ? ?
我读了很多文章来解决这个问题,但它并不适合我 我在连接数据库后使用了这段代码
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
$mysqli->set_charset("utf8");
这段代码在php代码的标题
header("Content-Type: text/html;charset=UTF-8");
此代码位于html代码顶部
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
但它无法正常工作,我无法在php页面中看到波斯语字符串,从MySql读取到php
如何解决这个问题?
答案 0 :(得分:2)
这是我用来使其正常工作的代码,因为我使用了所有代码,这意味着您的mysql数据库配置不正确,请使用正确的排序规则重新创建数据库,确保表格排序也相同并且字段类型为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;?>
答案 1 :(得分:0)
$mysqli->set_charset("utf8");
header("Content-Type: text/html;charset=UTF-8");
而不是$mysqli->set_charset("utf8");
尝试
$mysqli->set_charset("windows-1256");