【问题标题】:Echo special characters from mysql从 mysql 回显特殊字符
【发布时间】:2019-04-07 11:13:13
【问题描述】:

我的 Mysql 数据库的列类型为 varchar(8192) latin2_croatian_ci。我在那里插入这样的文本:Čćžvasfamižsafaš(这是带有特殊字符的随机文本)。当我在 mysql 中预览数据时,它确实有那个特殊字符(它没有被 ? 或其他东西替换)。

我有php页面

<!DOCTYPE html>
<?php
    session_start();
    include("somePhpFile");

    $cid = $mysqli->escape_string($_GET["id"]);

    $sql = "SELECT BODY FROM ... WHERE CLANAKID = '$cid'";
    if($result = $mysqli->query($sql))
    {
        $clanak = mysqli_fetch_assoc($result);
        $body = $clanak["BODY"];
    }
?>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Some title</title>
    <link rel="stylesheet" type="text/css" href="../Styles/Clanak.css?id=4" />
    <link rel="stylesheet" type="text/css" href="../Styles/DefaultBody.css" />

    <meta charset="UTF-8"/> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
    <script src="../jQuery/Header.js"></script>
</head>

<body>
    <?php include("someHeaderphp");?>
    <div id="BodyDiv">
        <?php echo($body); ?>
    </div>
</body>

</html>

当我在页面中回显它时,所有特殊字符都会被? 和其他字符替换。我能做什么?

这是我的Show create table

CREATE TABLE `CLANAK` (
 `CLANAKID` int(11) NOT NULL AUTO_INCREMENT,
 `NASLOV` varchar(64) NOT NULL,
 `BODY` varchar(8192) CHARACTER SET latin2 COLLATE latin2_croatian_ci NOT NULL,
 `THUMBNAIL` varchar(1024) NOT NULL,
 `AKTIVAN` int(11) NOT NULL DEFAULT '1',
 PRIMARY KEY (`CLANAKID`)
) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=latin1

【问题讨论】:

标签: php mysql collation


【解决方案1】:

首先,让我们进行一些调试。

请提供SHOW CREATE TABLE

让我们看看SELECT col, HEX(col) ... 转储表中的内容。对于Čćžvasfamižsafaš,十六进制为

3F3F3F76617366616D693F736166613F (???vasfami?safa?) - the text was messed up when storing.
C8E6BE76617366616D69BE73616661B9 - if it stored correctly into a latin2 column
C48CC487C5BE76617366616D69C5BE73616661C5A1 - correctly stored into utf8 (or utf8mb4)

Trouble with UTF-8 characters; what I see is not what I stored

【讨论】:

    猜你喜欢
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多