如何统一ThinkPHP请求参数编码,避免乱码输入?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1220个文字,预计阅读时间需要5分钟。
ThinkPHP+6 的 input() 函数直接获取 $_GET 和 $_POST 原始值,不会自动执行 urldecode() 或字符集转换。如果前端传递的是 UTF-8 编码的中文字符串 URL 参数(如 ?name=你好),input('name') 获取到的就是已解码的字符串;但如果某些客户端或网关二次编码(如 %E4%BD%A0%E5%A5%BD),则会出现乱码或问号。
常见错误现象:input('title') 返回 "???" 或空字符串,但 $_GET['title'] 看起来是正常百分号编码;或者 POST 表单提交含中文字段后,input('content') 变成乱码。
本文共计1220个文字,预计阅读时间需要5分钟。
ThinkPHP+6 的 input() 函数直接获取 $_GET 和 $_POST 原始值,不会自动执行 urldecode() 或字符集转换。如果前端传递的是 UTF-8 编码的中文字符串 URL 参数(如 ?name=你好),input('name') 获取到的就是已解码的字符串;但如果某些客户端或网关二次编码(如 %E4%BD%A0%E5%A5%BD),则会出现乱码或问号。
常见错误现象:input('title') 返回 "???" 或空字符串,但 $_GET['title'] 看起来是正常百分号编码;或者 POST 表单提交含中文字段后,input('content') 变成乱码。

