기억 휘발 방지소

[Node.js] String의 Bytes Length 구하기 본문

Web/Node.js

[Node.js] String의 Bytes Length 구하기

choice91 2022. 5. 20. 23:29
728x90
반응형

문자의 Bytes 길이를 쉽게 구하는 방법이 있습니다.

buffer.byteLength를 사용하면 됩니다.

const korBytesLength = Buffer.byteLength('안녕');
const engBytesLength = Buffer.byteLength('hello');
console.log(korBytesLength);  // 6
console.log(engBytesLength);  // 5

근데 영어는 글자당 1 bytes로 계산되는데 한글의 경우 글자당 3 bytes로 계산됩니다.

 

한글을 글자당 2 bytes로 계산하려면 다음과 같이 할 수 있습니다.

function getBytes(str) {
  let character;
  let charBytes = 0;

  for (let i = 0; i < str.length; i += 1) {
    character = str.charAt(i);

    if (escape(character).length > 4) charBytes += 2;
    else charBytes += 1;
  }

  return charBytes;
}

console.log(getBytes('안녕'));  // 4
console.log(getBytes('hello')); // 5
728x90
반응형