정보공유

JavaScript UTF-8 문자열의 byte 개수 구하기

찌맹 2009. 11. 16. 18:07

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