我在mysql中的UTF-8 ecoded表中存储了一些数据。当我在phpmyadmin中查看数据时,它会正确显示,如此
★M9刺刀(StatTrak™)|蓝钢(略有磨损)
但是,当我通过print命令将此数据输出到UTF-8编码的文档时,它无法正确显示。它看起来像这样:
? StatTrak�翻转刀|淡化(崭新出厂)
我现在已经在互联网上搜索了一段时间。到目前为止我所做的是我已经设置了默认_charset'在php中使用UTF-8并配置nginx以使用相同的编码。我已经检查过Firefox中的页面信息,并说它是UTF-8编码的,所以这似乎有效。我不明白为什么它还没有正确显示字符。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
有两件事需要做:
1.在查询中设置mysql编码为UTF-8(我不是指碰撞) 2.在HTML代码的输出中设置characeter编码。
对于mysql,您需要在打开与数据库的连接后立即执行这些查询:
mysqli_query($con,"SET NAMES utf8");
mysqli_query($con,"SET CHARACTER_SET utf8");
要以UTF-8编码的html输出显示您的数据,请在头部使用此元标记:
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<?php print("your code here..."); ?>
答案 1 :(得分:0)
我发现了问题所在。在执行查询时,您需要告诉MySQL您要保留UTF-8编码:
SET NAMES'utf8'
这将保持UTF-8编码,所有内容都将正确显示。