Laravel 表单请求 JSON 响应:中文未转换为 UTF

Laravel form request JSON response: Chinese Language not converted to UTF

我不确定我是如何做到这一点的。我的网络应用程序是英文和中文的。 I.t英文还行,中文就乱了

现在,我正在使用 Laravel 默认身份验证,并且工作正常。问题是当我 select 中文时,请求 class 的 JSON 响应未转换为 UTF,响应看起来像这样:

{"message":"The given data was invalid.","errors":{"first_name":["\u540d\u5b57\u4e3a\u5fc5\u586b\u9879"],"last_name":["\u5fc5\u987b\u586b\u5199\u59d3\u6c0f"],"email":["\u7535\u5b50\u90ae\u4ef6\u4e3a\u5fc5\u586b\u9879"],"password":[""],"terms_conditions":[""]}}

我想将此响应转换为 UTF 字符串。我知道我可以使用 json_encode.

json_encode($data, JSON_UNESCAPED_UNICODE); 

Laravel 请求 class 生成响应,但我不确定如何让它工作。默认函数位于 Laravel 框架文件夹中,我不想编辑该部分。如果您曾经遇到过这种情况,请分享您是如何解决这个问题的。

注意 我的请求是注册表单,但它不是常规的 HTTP 请求,但我通过 Ajax 调用提交了表单。

在搜索和谷歌搜索 5 小时后,我找到了这个解决方案,实际上你可以 return 通过重写这个函数 FormRequest class 的响应:

protected function failedValidation(Validator $validator) {
   $data = ['error' => json_encode($validator,JSON_UNESCAPED_UNICODE)];
   throw new HttpResponseException(response($data,422));
}

确保您还导入了:

use Illuminate\Http\Exceptions\HttpResponseException;

在您的 class 顶部。