从数据库创建到php读取json_encode中文正确显示

共识:1.首先应该确定,中文也是应该用varchar来存储的
2.测试使用MySQL语句查看字符集

show variables like "%char%";
show variables like "collatio%";

如果查看后有编码不统一(中文应用gbk或utf8支持)的地方,可以特定地修改某一项的值,例如:

SET character_set_client='utf8';

1.创建数据库

CREATE DATABASE databasename
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

2.创建表

  CREATE TABLE industry_name (
                       ...
                      ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这里与普通建表唯一不同的地方就是最后的一句话

测试看是否utf8统一

——————至此就可以在mysql查看的时候显示中文了—————-

一个例子

然后想办法在php中得到中文
1.在代码前段写上

header("Content-Type: text/html;charset=utf8");

2.在connection建立以后写上

mysqli_query($connection, "SET NAMES utf8");

————至此就可以在PHP页面中显示中文了————-

最后,如果需要用到json_encode,那么需要注意最后一点

$json_string = json_encode($result_row, JSON_UNESCAPED_UNICODE);

即在普通的json_encode中多加入一个参数,至此就全部完成啦~

一个例子

参考文章:
(转)Mysql中文乱码问题完美解决方案(包括建库、导入数据、网页)
彻底解决mysql中文乱码的办法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值