Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:不可读的输出字符_Php_Mysql_Pdo_Character Encoding - Fatal编程技术网

PHP:不可读的输出字符

PHP:不可读的输出字符,php,mysql,pdo,character-encoding,Php,Mysql,Pdo,Character Encoding,我正在使用PHP处理一个页面,但是在检索数据库时存储在数据库中的数据(文本)显示了无法读取的字符,正如您从我的在线实例中看到的那样 我为该页面编写的PHP代码是: <?php require_once "pdo.php"; try { $sql = "SELECT * FROM `content` ORDER BY `updated` DESC LIMIT 1"; $result = $pdo->query($sql); $result = $result

我正在使用PHP处理一个页面,但是在检索数据库时存储在数据库中的数据(文本)显示了无法读取的字符,正如您从我的在线实例中看到的那样

我为该页面编写的PHP代码是:

<?php
require_once "pdo.php";

try {
    $sql = "SELECT * FROM `content` ORDER BY `updated` DESC LIMIT 1";
    $result = $pdo->query($sql);
    $result = $result->fetchAll(PDO::FETCH_ASSOC);
} catch(PDOException $e) {
    die("Error: ".$e->getMessage());
}

header("Content-Type: text/html; charset=utf-8");
?>
<!DOCTYPE html>
<html lang="ps">
<head>
    <meta charset="utf-8">
    <title>تعليم الاسلام راډيو</title>
</head>
<body>
    <?=var_dump($result)?>
</body>
</html>

تعليم الاسلام راډيو
示例:

元标记应该是

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
如果你的“不可读字符”是

تعليم الاسلام راډيو
然后你有一个典型的

  • 客户端中的字节正确编码为utf8。撇号。)
  • 您可能默认使用
    集合名称拉丁1
    (或
    集合字符集(“拉丁1”)
    或…)进行连接。(应该是
    utf8
  • 表中的列已声明为
    字符集latin1
    。(或者可能是从表/数据库继承的。)(应该是
    utf8
对数据的修复是“两步修改”


其中长度足够大,而另一个“…”具有任何其他内容(
不为NULL
,等等)已在列中。

我无法区分可读字符和不可读字符。@chip no它与来自同一数据库和同一表的其他页面工作良好,例如:我认为是字符集的问题,或者可能是其他问题。在phpMyAdmin中,将此表的排序规则更改为Persian@Aviz没有波斯语,但它是固定的要使用utf8\u unicode\u ci,必须有一个与波斯语匹配的排序规则选项
تعليم الاسلام راډيو
ALTER TABLE Tbl MODIFY COLUMN col VARBINARY(...) ...;
ALTER TABLE Tbl MODIFY COLUMN col VARCHAR(...) ... CHARACTER SET utf8 ...;