【问题标题】:UTF8 combination PHP/MySql [duplicate]UTF8 组合 PHP/MySql [重复]
【发布时间】:2013-05-09 03:58:20
【问题描述】:

我的 sql 数据库有 utf8_unicode_ci 排序规则,而 HTML 有 utf8 (meta charset="utf-8")。

当我用 PHP 编写时:

$query = "SELECT * FROM  `subjects` WHERE  `year` = '$year'";
$result = $mysqli->query($query);

while($row = mysqli_fetch_array($result)){
    echo "<option value='" .  $row['name'] . "'>" . $row['name'] . "</option>";
}

而不是 čćšđ 我得到了一些疯狂的值,例如:?�...

【问题讨论】:

    标签: php html mysql utf-8


    【解决方案1】:

    添加

    mysql_query("SET NAMES 'utf8'");
    mysql_query("SET CHARACTER SET 'utf8_general_ci'");
    

    之前

    $query = "SELECT * FROM  `subjects` WHERE  `year` = '$year'";
    

    【讨论】:

    • 所以还有 2 个查询...只使用一次,然后删除...
    • @PauliusMarčiukaitis 在mysql connection 之后,查询将作为 mysql 的 GLOBAL 工作
    【解决方案2】:

    将您的 HTML 或 PHP 文件编码为 UTF-8。大多数编辑器都可以。如果你想用更少的代码使用它,你的代码还有什么意义(我认为你只需要 ASSOC 值)

    while($row = $result->fetch_assoc())
    

    而不是

    while($row = mysqli_fetch_array($result))
    

    【讨论】:

    • +投票指出这个while($row = $result-&gt;fetch_assoc()) out
    猜你喜欢
    • 2012-12-13
    • 2011-06-14
    • 2016-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多