freezner

[PHP] mb_substr 사용 시 문자가 null로 출력되는 경우

한글과 같은 2byte 문자를 자를 경우에는 substr이 아닌 mb_substr을 사용해야 합니다.

그런데 mb_substr 함수를 사용했을때 어떤 경우는 문자열이 잘리지 않고 null로 출력되는 경우가 있습니다.

이런 경우에는 mb_substr 함수의 인자를 확인해보세요.

// 수정 전
$str = mb_substr('테스트 문자열', 0, 2);

// 수정 후
$str = mb_substr('테스트 문자열', 0, 2, 'UTF-8');

마지막 인자에 인코딩 타입을 지정해주시면 해결이 됩니다. 너무 간단한 내용이지만 의외의 복병이 될 수도 있습니다.

이 함수 말고도 mb_strlen, mb_strcut 과 같은 함수도 공통으로 가지고 있는 사항이니 참고하세요.

Exit mobile version