本文目录导读:

在 PHP 中设置编码(字符集)主要有以下几种常见场景和方法:
PHP 文件本身的编码
保存文件时设置
- 使用 UTF-8 without BOM(无 BOM 的 UTF-8)
- 大部分 IDE/编辑器都可以设置:VSCode、PHPStorm、Sublime 等
PHP 输出编码设置
使用 header() 函数
// 设置 HTML 输出为 UTF-8
header('Content-Type: text/html; charset=utf-8');
// 或更完整的写法
header('Content-Type: text/html; charset=utf-8', true);
在 HTML 中设置 meta 标签
echo '<meta charset="utf-8">'; // 或 echo '<meta http-equiv="Content-Type" content="text/html; charset=utf-8">';
修改 php.ini 配置文件
default_charset = "utf-8"
数据库连接编码设置
MySQLi 示例
$mysqli = new mysqli("localhost", "user", "password", "database");
$mysqli->set_charset("utf8mb4"); // 推荐使用 utf8mb4
PDO 示例
$pdo = new PDO("mysql:host=localhost;dbname=database;charset=utf8mb4", "user", "password");
// 或
$pdo->exec("SET NAMES 'utf8mb4'");
JSON 编码设置
// 确保 JSON 输出 UTF-8
header('Content-Type: application/json; charset=utf-8');
echo json_encode($data, JSON_UNESCAPED_UNICODE); // 避免中文被转义
多字节字符串函数
使用 mb_* 系列函数处理多字节编码:
mb_internal_encoding("UTF-8"); // 设置内部编码
mb_http_output("UTF-8"); // 设置 HTTP 输出编码
完整示例
<?php
// 1. 设置 PHP 内部编码
mb_internal_encoding("UTF-8");
// 2. 设置 HTTP 头部
header('Content-Type: text/html; charset=utf-8');
// 3. 数据库连接
$db = new mysqli("localhost", "user", "pass", "dbname");
$db->set_charset("utf8mb4");
// 4. 输出内容
echo "中文测试";
?>
常见问题排查
如果出现乱码,请检查:
- 文件编码:PHP 文件是否保存为 UTF-8
- HTML 声明:是否设置了 charset
- 数据库:数据库、表、字段编码是否统一
- HTTP 头:是否有冲突的编码声明
- BOM 头:避免使用带 BOM 的 UTF-8
选择 UTF-8(尤其是 utf8mb4)作为统一的编码方案,可以解决大部分编码问题。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播