JavaScript UTF-8 문자열의 byte 개수 구하기
UTF-8 문자열의 byte 개수를 구해준다.
UTF-8 관련 정보는 http://ko.wikipedia.org/wiki/UTF-8 를 참조해서 계산했다.
//
// UTF-8 문자열의 Byte 크기 구하기.
// 주의!! : UTF-8 웹 페이지에서만 정상작동한다. EUC-KR에서는 작동하지 않는다.
//
// 참고 자료 : http://ko.wikipedia.org/wiki/UTF-8 위키 백과의 UTF-8 항목
// 테스트 환경 : IE6, IE7, FF 2.0, Safari 3, Opera 9.2
// 각 문자의 유니코드 코드를 분석하여, UTF-8로 변환시 차지하는
// byte 수를 리턴한다.
function charByteSize(ch) {
if (ch == null || ch.length == 0) {
return 0;
}
var charCode = ch.charCodeAt(0);
if (charCode <= 0x00007F) {
return 1;
} else if (charCode <= 0x0007FF) {
return 2;
} else if (charCode <= 0x00FFFF) {
return 3;
} else {
return 4;
}
}
// 문자열을 UTF-8로 변환했을 경우 차지하게 되는 byte 수를 리턴한다.
function stringByteSize(str) {
if (str == null || str.length == 0) {
return 0;
}
var size = 0;
for (var i = 0; i < str.length; i++) {
size += charByteSize(str.charAt(i));
}
return size;
}
// 테스트 코드
// (영문 각 1 byte * 7) + (한글 * 3byte * 5) + (. * 1 byte) = 7 + 15 + 1 = 23
var str="abcd123한글입니다.";
alert(str + " : " + stringByteSize(str));
var str="abcd123한글입니다.\nenter";
alert(str + " : " + stringByteSize(str));
var str="abcd123한글입니다.\nenter\t\r\n";
alert(str + " : " + stringByteSize(str));
'정보공유' 카테고리의 다른 글
자바 바이트길이 체크하여 입력하기 안깨지게~ (0) | 2009.12.14 |
---|---|
오라클 삭제 (0) | 2009.12.14 |
강산에 - 깨어나 (0) | 2009.12.01 |
푸른하늘- 눈물이나는날에는 (0) | 2009.12.01 |
노라존스 - don't know why (0) | 2009.11.19 |