PHP
[PHP] sms 본문 내용 byte 계산 (멀티바이트로 계산하기 - 한글 2byte)
- 2023.06.08 22:17:11
SMS의 내용을 byte로 계산할 때 일반적으로 한글, 특수문자는 2byte, 영어, 숫자 줄바꿈등은 1byte로 계산한다. 한글을 php나, javascript에서 UTF-8의 byte를 계산하는 경우 3byte로 계산하는데, sms 서비스의 경우 한글을 2byte로 계산해야 한다. [!]mb_strwidth() 함수를 사용한 byte 계산[/!] 아래와 같이 멀티바이트 (string width)로 계산하면 한글을 2byte로 계산할 수 있다. function getByteLength($str) {
$strlen = mb_strwidth(str_replace("\r\n", "\n", $str), 'UTF-8'); return $strlen; } 위 코드 중 str_replace("\r\n", "\n", $str) 코드는 리눅스의 경우 줄바꿈을 \r\n 으로 처리하기 때문에 2byte가 되는데, 이를 윈도우 기준인 \n으로 치환하여 1byte로 계산 하도록 한다. |