문자열이 잘리는 경우가 발생해서 확인해보니, 인코딩 문제인 것 같았다. iconv에서 발생한 문제였다.
iconv 함수로 캐릭터셋을 변경할 때, 텍스트가 잘리는 경우가 있다.
확인해보니 변환될 캐릭터셋에서 표현하지 못하는 문자를 만날 경우, 해당 문자 이전까지만 return되어 텍스트가 잘리는 현상이 발생한 것이였다.
변환하고자하는 인코딩에 '//IGNORE'을 추가하면 오류 문자는 무시하게 되어 전체 텍스트가 출력된다.
$strText = iconv("euckr", "utf8", $strText); # 기존
$strText = iconv("euckr", "utf8//IGNORE", $strText); # 변경 //IGNORE 추가
이 외에도 DB에 데이터가 잘리는 경우에 테이블 인코딩, 이모티콘/이모지, 특수문자, 데이터 길이(type) 등을 확인해본다.
'Development > PHP' 카테고리의 다른 글
[PHP] DateTime:: Unexpected character 에러 해결하기 (0) | 2023.03.20 |
---|---|
[PHP] 텍스트 깨지는 경우(인코딩) (0) | 2023.03.10 |
openssl 연동의 늪(해결 완료) (0) | 2023.01.19 |
PHP Notice: Use of undefined constant (0) | 2023.01.18 |
Cannot re-assign auto-global variable _GET 에러 (0) | 2023.01.17 |