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

时间:2015-04-20 11:09:25

标签: php html mysql persian

我将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

如何解决这个问题?

2 个答案:

答案 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");