php - 带有重音的记录上带有“b”前缀的字符串
问题描述
当我转储模型的属性并且它有重音时,它会返回这个“b”前缀
dump($venda_item->produto->nomeproduto); // b"teste téste"
我的数据库设置为 utf8 和 utf8_general_ci 排序规则
Malformed UTF-8 characters, possibly incorrectly encoded
当我在 json 中返回响应时,这会导致我出现以下错误,在这一行
$json_response = Response::json($response, $this->getStatusCode(), $headers);
更新
我发现如果我死了并在网络路由上转储记录它显示正常teste téste
Route::get('/', function () {
dd(App\Vendasitem::where('codigovi', 112685)->first()->produto->nomeproduto);
}
否则,如果我在控制器或请求以及我尝试过的其他文件中执行相同操作,它会一直以“b”前缀返回我
更新 2
如果我像这样保存我的记录PROMO - VIRICAPS (GUARANá + POLIVIT) 60 CáPS - CAIXA 18 UND
,dump($venda_item->produto->nomeproduto);
它会返回带有重音符号的正确结果。
我所有的数据库,包括列都设置utf8mb4
为utf8mb4_unicode_ci
解决方案
如果您已经确认数据库上的编码。看看config/database.php
, on charset 和 collation propeties。
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci'
如果问题出在“打印”上,那么您可以使用该utf8_encode
功能。
{{utf8_encode($yourVar)}}
推荐阅读
- amazon-web-services - Amazon Alexa 和 DynamoDB 的日常持久性
- javascript - 如何使用 chrome 扩展获取每个元素的所有事件侦听器
- c# - 无法从另一个表单访问列表框
- javascript - 在 React JS 中,如何在 keyup 事件中将数字转换为逗号分隔值
- java - 任务突发期间应用引擎中止请求错误
- python - Python - 广义线性模型系数
- android - 使用 talckback 聚焦来自 web 视图的 html 页面或元素
- python - Python Click、Apache OpenWhisk、IBM Cloud Functions、主要系统退出问题
- c++ - std::atomic::fetch_add 是 x86-64 上的序列化操作吗?
- sql - 有没有办法在解析 XML 数据时删除显式属性名称?