插入数据规格
mysqli_query($conn,"set names 'utf8'");
解决 php 向数据库插入数据时导致数据库的中文汉字变成乱码;
读取数据规格
header("Content-Type: text/html; charset=utf-8");
解决 php 页面向数据库读取数据时在 php 页面显示中文汉字为问号(?);
mysqli_query($conn,"set names 'utf8'");
需要有两个参数:$conn,
连接信息和 "set names 'utf8'"
设置编码。
最终完整代码
所以最终规格如下,在一个新的数据库连接后面追加字符编码规则代码:
$conn = new mysqli($servername, $username, $password, $dbname);
mysqli_query($conn,"set names 'utf8'");
header("Content-Type: text/html; charset=utf-8");
更多可能问题
在数据中的目标字段的字符集也需要同时修改为 uft-8
:
字符集:utf8
字符规则:utf8_general_ci
通常在页面和数据库中文汉字显示乱码或问号的问题原因,基本是程序与数据库及浏览器编码不统一导致的,所以根据以上的方法正确设置 php 的插入编码、数据库的字符集以及浏览器编码,即可解决。