- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
问题是我不能在 response()->json()
方法中使用任何俄语符号。我已经尝试过以下代码:
return response()->json(['users' => 'тест']);
and
return response()->json(['users' => mb_convert_encoding('тест', 'UTF-8')]);
and
return response()->json(
['users' => mb_convert_encoding('тест', 'UTF-8')])
->header('Content-Type', 'application/json; charset=utf-8');
我检查了默认编码:
mb_detect_encoding('тест'); // returns 'UTF-8'
此外,我所有的文件都已转换为无 BOM 的 UTF-8。我也将默认字符集添加到 .htaccess 文件 (AddDefaultCharset utf-8
)。
但是,我仍然得到像这里这样的错误响应:
{"users":"\u0442\u0435\u0441\u0442"}
最佳答案
您得到的响应:
{"users":"\u0442\u0435\u0441\u0442"}
是有效的 JSON!
也就是说,如果您不想对 UTF-8 字符进行编码,您可以简单地这样做:
$data = [ 'users' => 'тест' ];
$headers = [ 'Content-Type' => 'application/json; charset=utf-8' ];
return response()->json($data, 200, $headers, JSON_UNESCAPED_UNICODE);
然后输出将是
{"users":"тест"}
调用 response()
助手将创建一个 Illuminate\Routing\ResponseFactory
实例。 ResponseFactory
的 json
函数具有以下签名:
公共(public)函数 json($data = [], $status = 200, array $headers = [], $options = 0)
调用 json()
会创建一个新的 Illuminate\Http\JsonResponse
实例,这将是负责运行 json_encode
的类你的数据。在 JsonResponse
的 setData
函数中,您的数组将使用 response()->json( ...)
调用:
json_encode($data, $this->jsonOptions);
正如您在 documentation on php.net for the json_encode
function 上看到的那样和 documentation on php.net for the json_encode
Predefined Constants , JSON_UNESCAPED_UNICODE
将逐字编码多字节 Unicode 字符(默认转义为\uXXXX)。
请务必注意 JSON_UNESCAPED_UNICODE
仅在 PHP 5.4.0 后才受支持,因此请确保您运行的是 5.4.0 或更新版本才能使用它。
关于php - 是否可以在 Lumen(by Laravel) 中使用西里尔符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34029150/
我想在 lumen 中配置文件系统路径,而 lumen 没有提供配置文件夹设置文件系统本地路径怎么办? 最佳答案 在注册服务提供商之前,将以下内容放入您的 bootstrap/app.php 中: $
我想知道如何向 Lumen 中的路由添加查询参数 这是我创建的路线的示例 $app->get('/product/{apikey}','ProductController@getProduct');
我在 Lumen 中有一个类似于 Laravel 的错误消息标准文件夹。问题是没有使用来自那里的消息。如何让 Lumen 使用我的翻译来格式化消息? 现在,当我转储 $validator->error
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
如何在 Lumen 中使用 where 方法 Route::get('/talent/{id}', 'TalentController@talent')->where('id', '[0-9]+');
默认情况下,Lumen “与 Laravel 相同” 有 myApp/public 目录来放置所有公共(public)文件( Assets )。 我想将该目录路径从 myApp/public 更改为
好的,我对 lumen 和 laravel 还很陌生,我正在尝试制作这个 api https://packagist.org/packages/codenexus/lumen-geoip在 lumen
我在 laravel/lumen 中声明了一个路由组,如下所示: $app->group(['middleware' => 'auth'], function () use ($app) {
我正在尝试集成 Oauth2 身份验证,发现 Taylor Otwell 使用 Laravel Passport 为它做了很好的工作。我正在尝试集成相同的内容以创建 REST API,我用谷歌搜索集成
如何在 Lumen 框架中对自定义数组执行验证。例如: 示例数组: $params = array('name' => 'john', 'gender' => 'male'); 我试过类似的方法,
我正在使用 Lumen 队列。要启动正在处理的作业,文档指示要从命令行运行队列监听器,如下所示: php artisan queue:listen 我想直接从我的代码触发我的队列作业进程。怎么做? 最
我在 Lumen 中,在一个 Controller 中,我想以一种简单易行的方式缓存计算结果,而不使用数据库或外部服务,所以我正在寻找将缓存保存在文件系统中。在 Laravel's documenta
流明日志被写入/storage/logs,默认情况下被命名为lumen.log。如何将文件名更改为xyz.log? 最佳答案 如注释中所述,日志文件的位置和名称是硬编码的。 现在,如果出于某些令人信服
我正在尝试在我的 Lumen 应用程序中启用基本用户身份验证用户名和密码。 在 app.php 文件中,以下内容已取消注释,如 https://lumen.laravel.com/docs/5.4/a
我正在尝试了解如何更改 Lumen 项目的默认存储位置(包括其子文件夹)。出于多种原因,考虑到生产 Web 服务器的当前配置,Lumen 在尝试写入日志或编译 Blade View 时抛出权限被拒绝的
我是 Lumen 和 Laravel 的新手,但我必须使用 Lumen 编写 REST API。我已经设置了 Controller ,但在使用记录器时遇到问题。我已遵循文档:Lumen docs 这是
我正在使用 Laravel 的 Lumen 框架学习后端开发,并且正在编写数据库播种类(class) Laravel's documentation 。下面是代码: 模型app\Photo.php n
我正在尝试在我公司的项目中实现单元测试,但我在尝试使用我的数据库中的一组单独数据时遇到了一些奇怪的问题。 由于我希望在受限环境中执行测试,因此我正在寻找在专用数据库中输入数据的最简单方法。长话短说,在
我正在使用 Lumen 和 Fractal 制作 API,但出现错误 Method attempt does not exist 尝试登录时。有人可以帮我解决这个问题吗?这是我的 Controller
我正在查看 Lumen 中的路由,它似乎无法正常工作,我无法确定这是一个问题还是我的理解。 $router->get('{adaptor}[/{id}]', ['uses' => 'MyCon
我是一名优秀的程序员,十分优秀!