使用 mb_convert_encoding 将 gbk 字符串转为 utf-8,只需调用该函数并指定目标编码为 "utf-8"、源编码为 "gbk"。例如 mb_convert_encoding($str, "utf-8", "gbk") 即可直接完成转换。

如何验证转换后的编码是否正确?
通过 mb_detect_encoding 检测转换后字符串的编码类型,确认是否已变为 UTF-8。若返回 false 或 ASCII,说明转换未生效或输入本身无多字节字符。

$str = '中文'; $utf8_str = mb_convert_encoding($str, "UTF-8", "GBK"); echo mb_detect_encoding($utf8_str); // 输出: UTF-8
如果源编码不是 GBK 而是 GB2312 会怎样?
当源编码设为 "GB2312" 时,mb_convert_encoding 仍能正确转换为 UTF-8,因为 GB2312 是 GBK 的子集,多数情况下行为一致。但若包含扩展汉字,可能丢失数据。

$str = '中文'; $utf8_str = mb_convert_encoding($str, "UTF-8", "GB2312"); echo $utf8_str; // 输出: 中文(若含扩展字则可能乱码)
转换失败时常见的错误原因是什么?
常见原因包括:源编码参数拼写错误、输入为空字符串、或未启用 mbstring 扩展。检查 extension_loaded('mbstring') 可确认环境支持情况。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











