닉네임 한글 질문드립니다.

닉네임 한글 질문드립니다.

QA

닉네임 한글 질문드립니다.

본문

원래 php 에서 한글은 3byte로 알고있습니다.

register.lib.php 에서

 


function count_mb_nick($reg_mb_nick)
{
    if (strlen($reg_mb_nick) < 4)
        return "닉네임은 한글 2글자, 영문 4글자 이상 입력 가능합니다.";
    else
        return "";     
}

 

에서 한글을 어떻게 2byte로 치는건가요?

이 질문에 댓글 쓰기 :

답변 3

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면 그누보드에서는 어떤 인코딩을 한건가요?

그누보드 기본 인코딩은 utf-8 입니다

strlen 의 경우 아마도 한글,영문,숫자 가 섞여서 닉네임 체크를 해야하니 저렇게 처리한것으로 보입니다 

 

이부분은 버그게시판에 등록하시면 리자 님께서 자세히 설명해주실거 같습니다

답변을 작성하시기 전에 로그인 해주세요.
전체 123,524 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT