Php 流明和UTF-8编码
我在查询MySQL数据库后试图返回JSON响应时遇到了Lumen 5.3的问题 我的方案和我所有的表都用Php 流明和UTF-8编码,php,mysql,encoding,utf-8,lumen,Php,Mysql,Encoding,Utf 8,Lumen,我在查询MySQL数据库后试图返回JSON响应时遇到了Lumen 5.3的问题 我的方案和我所有的表都用utf8\u general\u ci编码,这是我的代码示例,给我带来了麻烦: public function getUserByMail(Request $request){ $user = app('db')->table('user')->select('id','lastName', 'firstName','mail','status')->where('m
utf8\u general\u ci
编码,这是我的代码示例,给我带来了麻烦:
public function getUserByMail(Request $request){
$user = app('db')->table('user')->select('id','lastName', 'firstName','mail','status')->where('mail',$request->input('userMail'))->first();
return response()->json(
array('id' => $user->id,
'lastName' => $user->lastName,
'firstName' => $user->firstName,
'mail' => $user->mail,
'status' => $user->status));
}
有时(但仅有时),这段代码在调用json()
方法时引发异常格式错误的UTF-8字符,可能编码不正确
我不知道该怎么做来修复它,有人有主意吗 我终于明白发生了什么:在Wamp安装上运行Lumen时,由于配置加载问题,我遇到了这个错误
Lumen框架使用DotEnv
加载指定数据库连接信息的.env
文件。但在某些情况下(我怀疑PHP多线程支持出现故障),我的请求使用了Laravel的默认数据库登录(forge@localhost
)访问数据库,该操作失败(Lumen异常处理程序未捕获遇到的PDOException
),并且我的$user
变量不包含我期望的内容,这导致了UTF-8错误
Lumen GitHub()中引用了此问题
我使用此命令修复了此问题,以强制加载我的配置。尝试使用var\u转储导致此错误的值。然后,您将看到哪里出了问题。请在指定客户端字符集的位置向我们显示连接代码。