닉네임 한글 질문드립니다. 채택완료
원래 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면 그누보드에서는 어떤 인코딩을 한건가요?