본문으로 바로가기

[PHP] 문자열 길이 - strlen, mb_strlen

category Helloworld!/PHP 2016. 2. 18. 18:17
php 에서 문자열 길이 계산해주는 함수에는 strlen 이 있다.
근데 한글인 문자열 길이를 보려고 하니까 strlen 은 한글자당 3byte로 계산해서 출력이 된다.

여태껏 알고있던 한글의 byte 는 한 글자당 2byte라고 생각하고 있었기에...
무엇보다 jQuery에서는 같은 문자열의 length 값을 출력하면 한글이던 숫자던 한 글자당 1개로 쳐서 출력되는 것을 원해서 찾아보던 중
다음 함수를 접했다.

var str = '테스트';
strlen(str); //9
mb_strlen(str, 'euc-kr'); //6
mb_strlen(str, 'utf-8'); //3

이와 같이 mb_strlen 을 사용할 때 변환코드를 입력하면 그에 알맞게 출력 값을 받을 수 있다. 
euc-kr 로 하면 한글은 한글자당 2byte로 계산된다 
utf-8로 하면 한글이던 영문이던 한글자당 1개로 계산된다.