원래 php 에서 한글은 3byte로 알고있습니다.
register.lib.php 에서
Copy
function count_mb_nick($reg_mb_nick)
{
if (strlen($reg_mb_nick) < 4)
return "닉네임은 한글 2글자, 영문 4글자 이상 입력 가능합니다.";
else
return "";
}
에서 한글을 어떻게 2byte로 치는건가요?
답변 3개 / 댓글 1개
채택된 답변
+20 포인트
1. utf-8 인코딩 기준으로 1글자가3byte 로 처리됩니다
2. strlen 은 영문기준으로 byte 를 쓰기 때문에
위 함수를 보완하시려면
mb_strlen($reg_mb_nick,'utf-8') 로 처리하셔야 합니다
그누보드는 닉네임이 영문,숫자,한글이 혼용되기 때문에
편의를 위해서 4로 한것이 아닐까 싶습니다
답변을 작성하려면 로그인이 필요합니다.
utf-8 인코딩이 아니라는건가요?
strlen($reg_mb_nick) < 4 에서 한글 2글자 영어 4글자로 처리했으면
한글 1글자당 2byte 로처리했다는건데.
utf-8인코딩에서 한글 1글자가 3byte면 그누보드에서는 어떤 인코딩을 한건가요?