从MySQL正确提取的Unicode字符[PHP MYSQL]

时间:2016-12-23 06:49:41

标签: php mysql unicode

我从MySQL数据库中获取图像文件路径,一切正常,直到路径名称中包含一些与之关联的unicode字符。例如,我使用此代码来获取图像文件路径;

$sql = "SELECT images FROM agents";
$basePath = "http://localhost/img/";
$result = mysqli_query($con, $sql);
while ($row = mysqli_fetch_array($result)) {
    $img = $row['images'];
    $actualPath = $basePath . $img;
    echo $actualPath;
}

对于英文字母图片,没关系,结果是http://localhost/img/selena.jpg,但是如果它使用unicode字符,它就像http://localhost/img/11_??.jpg而真正的文件路径会是http://localhost/img/11_副本.jpg
如何将副本字符从MySQL中提取出来而不仅仅是成为??符号?

编辑:我使用了预处理语句方法,而不是基本的mysqli_query()命令。

1 个答案:

答案 0 :(得分:1)

在查询之前使用SET NAMES UTF8来处理Unicode字符。

mysqli_query($con, 'SET NAMES UTF8');

$sql = "SELECT images FROM agents";
$basePath = "http://localhost/img/";
$result = mysqli_query($con, $sql);
while ($row = mysqli_fetch_array($result)) {
   $img = $row['images'];
   $actualPath = $basePath . $img;
   echo $actualPath;
}