"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ÎÐ"
Почему это происходит? Я выполнил приведение к строке/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
Я передал эту проблему ИИ, и вот что сказал ИИ:
The root cause is most likely due to the difference in default encoding between Windows and macOS.
On Windows, many files, input, and CLI data are stored in ANSI/Windows-1252, while on macOS, the default encoding is UTF-8.
When Laravel on Mac tries to encode JSON, it encounters data that is still in Windows-1252 or ISO-8859 format and immediately throws an error:
Malformed UTF-8 characters, possibly incorrectly encoded
On Windows, there's no error because PHP on Windows automatically accepts Windows-1252, which is more permissive.
но потом предлагаю кастинг на модель. Я уже это сделал, но это не решение проблемы.
РЕДАКТИРОВАТЬ:
Вот приведения:
protected $casts = [
'email_verified_at' => 'datetime',
];
вот пользователи DESC с этим идентификатором
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
Мобильная версия