닉네임 한글 질문드립니다. 채택완료
원래 php 에서 한글은 3byte로 알고있습니다.
register.lib.php 에서
</p>
<p>function count_mb_nick($reg_mb_nick)</p>
<p>{</p>
<p> if (strlen($reg_mb_nick) < 4)</p>
<p> return "닉네임은 한글 2글자, 영문 4글자 이상 입력 가능합니다.";</p>
<p> else</p>
<p> return ""; </p>
<p>}</p>
<p>
에서 한글을 어떻게 2byte로 치는건가요?
댓글을 작성하려면 로그인이 필요합니다.
답변 3개
채택된 답변
+20 포인트
4년 전
1. utf-8 인코딩 기준으로 1글자가3byte 로 처리됩니다
2. strlen 은 영문기준으로 byte 를 쓰기 때문에
위 함수를 보완하시려면
mb_strlen($reg_mb_nick,'utf-8') 로 처리하셔야 합니다
그누보드는 닉네임이 영문,숫자,한글이 혼용되기 때문에
편의를 위해서 4로 한것이 아닐까 싶습니다
로그인 후 평가할 수 있습니다
답변에 대한 댓글 1개
�
4년 전
댓글을 작성하려면 로그인이 필요합니다.
4년 전
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
4년 전
그누보드 기본 인코딩은 utf-8 입니다
strlen 의 경우 아마도 한글,영문,숫자 가 섞여서 닉네임 체크를 해야하니 저렇게 처리한것으로 보입니다
이부분은 버그게시판에 등록하시면 리자 님께서 자세히 설명해주실거 같습니다
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인전체 질문 목록
채택
답변대기
답변대기
채택
답변대기
utf-8 인코딩이 아니라는건가요?
strlen($reg_mb_nick) < 4 에서 한글 2글자 영어 4글자로 처리했으면
한글 1글자당 2byte 로처리했다는건데.
utf-8인코딩에서 한글 1글자가 3byte면 그누보드에서는 어떤 인코딩을 한건가요?