[JavaScript] String형 Bytes length 구하기Language/JavaScript2022. 9. 22. 20:54
Table of Contents
반응형
UTF-8 인코딩 방식 바이트 길이 구하기
한글 한글자당 3 바이트씩 계산됩니다.
// Function
const getByteLengthOfString = function(s,b,i,c){
for(b=i=0;c=s.charCodeAt(i++);b+=c>>11?3:c>>7?2:1);
return b;
};
// Test
const test = '테스트';
console.log('length : ', getByteLengthOfString(test), 'Bytes');
# 결과
length : 9 Bytes
한글의 경우 2바이트 계산되도록
아래 함수를 통해 한글 문자열의 바이트 수를 2 바이트로 나오게 할 수 있습니다.
// Function
String.prototype.getBytes = function() {
const contents = this;
let str_character;
let int_char_count = 0;
let int_contents_length = contents.length;
for (k = 0; k < int_contents_length; k++) {
str_character = contents.charAt(k);
if (escape(str_character).length > 4)
int_char_count += 2;
else
int_char_count++;
}
return int_char_count;
}
// Test
const test = '테스트';
console.log('length : ', test.getBytes(), 'Bytes');
# 결과
length : 6 Bytes
입력된 길이 만큼의 문자열을 리턴
// Function
String.prototype.getStringFromByteLength = function( length ) {
const contents = this;
let str_character;
let int_char_count = 0;
let int_contents_length = contents.length;
let returnValue = '';
for (k = 0; k < int_contents_length; k++) {
str_character = contents.charAt(k);
if (escape(str_character).length > 4)
int_char_count += 2;
else
int_char_count++;
if ( int_char_count > length ) {
break;
}
returnValue += str_character;
}
return returnValue;
}
// Test
const test = '테스트';
console.log('result : ', test.getStringFromByteLength(4));
# 결과
result : 테스
반응형
'Language > JavaScript' 카테고리의 다른 글
[JavaScript] 모달에서 이미지 및 동영상 출력 (0) | 2022.09.25 |
---|---|
[JQuery] Select Box 제어 (0) | 2022.09.25 |
[JQuery] DataTables 사용 방법 (0) | 2022.09.13 |
[Openlayers] getGetFeatureInfoUrl 함수 사용 (0) | 2022.09.01 |
[Cesium] 개발 팁 (0) | 2022.09.01 |
@고지니어스 :: 규니의 개발 블로그
IT 기술과 개발 내용을 포스팅하는 블로그
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!