【发布时间】:2017-01-19 12:35:28
【问题描述】:
我正在尝试从 mysql 数据库中读取数据。在我的数据库中,我检查了数据显示为'μ',并且字符集正确设置为'UTF-8'。但是当我在 PHP 中运行以下代码时,输出 'μ' 显示为 '?'。我通过添加不同类型的字符集和所有脚本尝试了很多方法,但都是徒劳的,仍然显示为'?'。谁能帮帮我。
我的脚本如下:
<?php
ini_set("default_charset", "UTF-8");
header('Content-type: text/html; charset=UTF-8');
error_reporting(E_ALL);
ini_set("display_errors", 1);
$tender_id=$_GET['tender_id'];
include('config_sqli.php');
?>
<?php
$result=mysqli_query($con,"SELECT * FROM comparitive_st_sup WHERE
id='$member[$x]' and tender_id='$tender_id'");
while($row=mysqli_fetch_assoc($result)){
$prod_description1 = $row['prod_description'];
$prod_description = mysqli_real_escape_string($con, $prod_description1);
}
echo $prod_description;
echo '<br>';
?>
【问题讨论】:
-
试试 utf8_encode:php.net/manual/en/function.utf8-encode.php
-
我看到类似 $value = utf8_encode($value);我试图在我的代码中实现,但它的显示?只要。需要检查到底是什么问题。
-
您还需要在
mysql中设置编码。看看stackoverflow.com/questions/14068616/… -
警告:使用
mysqli时,您应该使用parameterized queries 和bind_param将用户数据添加到您的查询中。 请勿使用字符串插值或连接来完成此操作,因为您创建了一个严重的SQL injection bug。 切勿将$_POST或$_GET数据直接放入查询中,如果有人试图利用您的错误,这可能会非常有害。 -
感谢@tadman 提供的信息。感谢。一定要实现。