Неверный формат uuid на сервере sql на MacPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Неверный формат uuid на сервере sql на Mac

Сообщение Anonymous »

Я получаю следующую ошибку:
"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-сервер
Раньше моя среда работала в Windows, и программа работала нормально, потому что UUID не был искажен.
Поэтому я почти уверен, что в коде нет ничего плохого. Я думаю, это что-то связано с 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»