질문을 삭제하지 말아주세요.!
 
1
0
-1

해당 테이블의 character set 을 utf8mb4로 바꾸고 collation도 utf8mb4_unicode_ci 로 바꿨습니다.

그리고 emoji 데이터를 insert하게 되면 ???? 로 들어가게 되는데 

해결할 수 있는 방법이 있을까요?

    CommentAdd your comment...

    1 answer

    1.  
      1
      0
      -1


      db 의 인코딩과 php 에서 사용할 db 인코딩을 설정해야 합니다. 

      https://www.google.co.kr/amp/s/amp.reddit.com/r/laravel/comments/5sxwt9/laravel_54_mysql_utf8mb4_and_utf8mb4_unicode_ci/

      먼저 php에 하드코딩한 데이터가 들어가는지 보고 

      웹페이지에서 입력한 데이터가 정상인지 확인하세요.



      1. lzao

        제가 database character set을 utf8로 설정해줘서 그런 것 같습니다.

        utf8mb4로 바꾸니 제대로 들어갑니다.

        답변 감사합니다. ^^

      2. 김주원

        인덱스 또는 제약조건이 걸린 VARCHAR 컬럼을 사용할 때 주의하셔야 합니다.

        MySQL의 인덱스 크기는 최대 767byte인데,

        utf8(한 글자당 3byte) : 767 / 3 = 255 글자

        utf8mb4(한 글자당 4type) : 767 / 4 = 191 글자

        이 됩니다. 따라서, utf8mb4 문자셋으로 정의된 MySQL DB에서는 VARCHAR 컬럼을 191 글자보다 작은 크기로 정의해야 런타임에 문제가 발생하지 않습니다. 

      CommentAdd your comment...