phpy读取mysql数据后中文显示为???的解决办法

1年前 2591次浏览

近日弄了个免费php空间,打算用来发个外链什么的,于是乎创建数据库,写入数据,但是当我把数据读取显示时,出了个问题就是中文全是???号了!

image.png

由于是免费的空间mysql数据库都是配置好我,我也无从配置起,所以只能通过“SET NAMES UTF8”来解决这个问题,其实要解决这个中文显示为???也挺容易,就是在连接数据库的时侯声明一下编码。简单说就是在创建连接后紧接着在后面加一段SET NAMES UTF8声明。如:

$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn,"SET NAMES UTF8");

image.png

做好上面的声明后显示正常了,

image.png

需要注意的是这里需要与header中设置的编码与文件本身的编码相一致。即文件编码为utf-8那么header中设置utf-8,SET NAMES也应该与之相对应,但是要注意charset中为utf-8,但是下面为UTF8。有时侯容易错把下面写为SET NAMES UTF-8(就错了)。

文件编码可以通过编辑器查看,如我使用的是VSCODE在下方的状态栏看到,

image.png

只有当这三个地方都一致了才能够不报乱码。其它如果是gbk则为SET NAMES GBK。不过现在一般都使用UTF-8编码了,很少有GBK的。

相关评论
暂无相关评论...
发表评论
评论说明:

1、评论暂仅只持纯文字评论。

2、请不要发表与内容无关的评论。

3、评论需要经由审核才能显示出来。

4、评论姓名与链接无要求,只要评论内容符合便可审核通过。