"message": "Malformed UTF-8 characters, possibly incorrectly encoded",
Это мой настоящий идентификатор с UUID в базе данных:
944CC79D-5980-4587-8A52-000A2F11D7D1
И это UUID при попытке получить данные с помощью php artisan Tinker:
b"ØÃLöÇYçEèR\0\n/\x11ÎÐ" // ____4C__-__59-__45-__52-000A2F11____
Почему это происходит? Я выполнил приведение к строке/UUID в моделях, очистил кеш, но безрезультатно.
Моя среда:
- mac os, tahoe 26.1 ver
- PHP 8.4 (также протестировано с PHP 8.2)
- Laravel 11
- БД использует SQL-сервер
Поэтому я почти уверен, что в коде нет ничего плохого. Я думаю, это что-то связано с Apple MAC. Но в MAC моего коллеги он не искажен. Для меня это очень странно.
Я хочу, чтобы uuid был правильно передан, а не: b"ØÃLöÇYçEèR\0\n/\x11ÎÐ"
Вот консоль PHP artisan:
Все UUID искажены, не только у пользователей:
$ php artisan tinker
Psy Shell v0.12.7 (PHP 8.2.29 — cli) by Justin Hileman
> User::first()
[!] Aliasing 'User' to 'App\Models\User' for this Tinker session.
= App\Models\User {#6624
id: b"ØÃLöÇYçEèR\0\n/\x11ÎÐ",
//rest of the data
Что касается кастинга модели, я думаю, что уже сделал это, но это не решение проблемы; вот актерский состав:
protected $casts = [
'email_verified_at' => 'datetime',
];
А вот описание пользователей по идентификатору в базе данных:
Column_name |Type |Computed|Length|Prec |Scale|Nullable|TrimTrailingBlanks|FixedLenNullInSource|Collation
id |uniqueidentifier|no | 16| | |no |(n/a) |(n/a) | |
Подробнее здесь: https://stackoverflow.com/questions/798 ... ver-on-mac
Мобильная версия