Malformed UTF-8 characters, possibly incorrectly encoded in Laravel

김윤수·2022년 12월 1일
0

php

목록 보기
1/1

Faker를 이용해서 임의 영문 데이타를 생성해서
개인공부 중에 임의 데이타를 한글로 변경하여 DB에 등록했더니
Malformed UTF-8 characters, possibly incorrectly encoded 오류가 났음

JSON 관련 오류인가? 해서 withoutWrapping() 처리도 해봄 -> 아님

public function boot()
{
    JsonResource::withoutWrapping();
}

Database 인코딩 문제인가? 확인해보니 utf8mb4 (unicode_ci) -> 아님

혹시나 해서 PostResource를 사용 안하고 직접 넘기니 오류가 안났음
그러면 PostResource을 의심할 수 밖에...

class PostResource extends JsonResource
{
    /**
     * Transform the resource into an array.
     *
     * @param  \Illuminate\Http\Request  $request
     *
     * @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
     */
    public function toArray($request)
    {
        return [
            'id'         => $this->id,
            'title'      => $this->title,
            'content'    => substr($this->content, 0, 50).'...',
            'created_at' => $this->created_at->toDateString(),
        ];
    }
}

아항~ substr() 이구나~~
mb_substr()으로 변경 후 오류 해결.

늘 그렇지만 오류는 알고 나면 간단한 것이었지.

profile
안녕하세요

0개의 댓글