본문 바로가기
Dev/ETC

JavaScript String Byte 구하기.

by nakanara 2010. 8. 13.
반응형

* 문장의 바이트 길이를 파악할 일이 생겨서 찾아보았습니다.
   잘되는거 같아요. 감사합니다.


/**
 * 참고 : http://okjsp.pe.kr/seq/30371
 * 한글을 2바이트 씩 계산하여 입력받은 문자열이 DB에 저장될 때 총 몇바이트를 차지하는지 계산한다.
 * 엔터(\r\n)는 2바이트를 차지한다.
 * @param val : 입력받은 문자열
 */
String.prototype.len = function () {
var val = this;
// 입력받은 문자열을 escape() 를 이용하여 변환한다.
// 변환한 문자열 중 유니코드(한글 등)는 공통적으로 %uxxxx로 변환된다.
var temp_estr = escape(val);
var s_index   = 0;
var e_index   = 0;
var temp_str  = "";
var cnt       = 0;


// 문자열 중에서 유니코드를 찾아 제거하면서 갯수를 센다.
while ((e_index = temp_estr.indexOf("%u", s_index)) >= 0)  // 제거할 문자열이 존재한다면
{
  temp_str += temp_estr.substring(s_index, e_index);
  s_index = e_index + 6;
  cnt ++;
}


temp_str += temp_estr.substring(s_index);
temp_str = unescape(temp_str);  // 원래 문자열로 바꾼다.


// 유니코드는 2바이트 씩 계산하고 나머지는 1바이트씩 계산한다.
return ((cnt * 2) + temp_str.length) + "";
  }
/* cut string */
String.prototype.cut = function(len) {
var str = this;
var l = 0;
for (var i=0; i<str.length; i++) {
l += (str.charCodeAt(i) > 128) ? 2 : 1;
if (l > len) return str.substring(0,i);
}
return str;
}



반응형

'Dev > ETC' 카테고리의 다른 글

Hudson / Jenkins  (0) 2011.05.19
SVN 메타파일 제거 배치파일.  (0) 2010.11.26
My Sql 계정 생성 방법 및 1045 오류  (0) 2009.04.06
메일 Open 확인  (0) 2008.12.24
Java 메일 보내기  (0) 2008.12.23