티스토리 뷰

DB 저장 시 데이터 길이 체크는 필수이다.




자바스크립트에서 Validation 시 사용되는 바이트 체크 함수는 아래와 같다.




var str = 'Hello월드';


function getByteB(str) {

var byte = 0;

for (var i=0; i<str.length; ++i) {

// 기본 한글 2바이트 처리

(str.charCodeAt(i) > 127) ? byte += 2 : byte++ ;

}

return byte;

}


위의 결과는 9 byte 이다.




하지만 주의해야 할 점이 한가지 있다.


보통 한글 2바이트 그 외 영문, 숫자 1바이트라고 하지만


오라클 utf-8 타입의 설정일 경우 한글은 3바이트로 인식하게 된다.


그렇기 때문에 utf-8 타입의 VARCHAR2 필드에 입력을 위한 체크 시



(str.charCodeAt(i) > 127) ? byte += 2 : byte++ ;


부분을


(str.charCodeAt(i) > 127) ? byte += 3 : byte++ ;


이렇게 3 byte 씩 추가 되도록 변경할 필요가 있다.


그렇게 되면 위의 결과는 11 byte 가 된다.




이를 유념하자. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함