반응형
특정 조건에서 mysql db insert error 가 발생하는것을 발견했다.
'불쾌' 라는 단어는 아무 문제 없이 입력이 잘 되는데,,,
'아니라 불쾌하다' 처럼 '쾌' 자가 특정 문자열과 결합될때 DB 입력이 안되는 문제가 발생했다.
chatGPT 에게 물어봤다.
질문 >
'불쾌' 라는 단어는 디비에 입력이 잘 되는데... '아니라 불쾌하다' 라는 문구는 입력이 안되는 문제가 발생해. 문제가 뭘까?
GPT 답변 >
MySQL에서 흔히 사용하는 문자셋 utf8은 실제로는 3바이트까지의 유니코드 문자만 지원합니다.
하지만 '쾌'나 일부 이모지, 복합문자는 4바이트로 인코딩될 수 있습니다.
이때, MySQL 테이블이나 컬럼이 utf8로 설정되어 있으면 4바이트 문자 입력 시 에러가 납니다.
이때 필요한 건 utf8mb4 문자셋입니다.
utf8mb4는 MySQL에서 진짜 “완전한 유니코드(최대 4바이트)“를 지원합니다.
삽질 >
DB 커넥션 부터 테이블 문자셋 바꾸고 칼럼 수정하고 새벽에 오만 삽질을 다해봤으나 결국 안되었고,,
DB 커넥션 부터 테이블 문자셋 바꾸고 칼럼 수정하고 새벽에 오만 삽질을 다해봤으나 결국 안되었고,,
//DB 커넥션시 문자셋 지정
$conn->set_charset("utf8mb4");
//테이블 문자셋 변경
ALTER TABLE 'tableName' CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
결론 >
혹시나 하는 마음에 iwinv 호스팅업체 웹방화벽을 off 시켰더니 모든 문제가 해결됨.
웹방화벽에서 무슨 필터를 거나 ?
혹시나 하는 마음에 iwinv 호스팅업체 웹방화벽을 off 시켰더니 모든 문제가 해결됨.
웹방화벽에서 무슨 필터를 거나 ?
반응형
'개발이야기' 카테고리의 다른 글
구글 애드몹 본인인증과 주소확인 (1) | 2024.10.28 |
---|---|
TXT 에서 유효한 문장 분리하기 ( NLTK) (1) | 2024.10.25 |
flutter tts 무음모드 에서 재생하기 (진동모드 에서 재생) (0) | 2024.10.23 |
github.io 홈페이지 느려지는 문제 (CDN 적용) (0) | 2024.10.23 |
애드몹 두번째 광고 차단 ( 제한적 광고 게재 ) (0) | 2024.09.10 |