Oh MyUtils

바이트 카운터 - 문자열 바이트 크기 계산기 온라인

UTF-8, UTF-16, ASCII, ISO-8859-1, Base64 인코딩별 문자열 바이트 크기를 계산합니다. 주요 크기 제한과 비교 — 100% 클라이언트 사이드, 서버 전송 없음.

입력
문자 수
0
UTF-8
0 bytes
UTF-16
0 bytes
ASCII
0 bytes
ISO-8859-1
0 bytes
Base64 인코딩
0 bytes

자주 묻는 질문

바이트 카운터란 무엇인가요?

바이트 카운터는 다양한 문자 인코딩(UTF-8, UTF-16, ASCII)에서 문자열이 차지하는 정확한 바이트 수를 계산합니다. 글자 수와 달리, 바이트 수는 텍스트 데이터의 실제 메모리 또는 저장소 크기를 반영합니다.

바이트 수와 글자 수가 다른 이유는?

UTF-8 같은 멀티바이트 인코딩에서 ASCII를 넘어서는 문자는 2~4바이트가 필요합니다. 예를 들어, 한글 '안'은 UTF-8에서 3바이트를 차지하지만 1글자로 카운트됩니다. 이모지는 4바이트 이상이 될 수 있습니다. 이 차이는 저장소 제한, API 페이로드, 데이터베이스 컬럼 설정에서 중요합니다.

데이터가 안전한가요? 브라우저 밖으로 나가나요?

모든 계산은 브라우저의 내장 TextEncoder API를 사용하여 100% 클라이언트 사이드에서 수행됩니다. 텍스트는 브라우저를 절대 벗어나지 않으며 어떤 서버로도 전송되지 않습니다.

UTF-8과 UTF-16의 차이점은?

UTF-8은 문자당 1-4바이트를 사용합니다(ASCII 위주 텍스트에 효율적). UTF-16은 문자당 2 또는 4바이트를 사용합니다(JavaScript의 내부 인코딩). 영문 텍스트에서는 UTF-8이 더 작고, CJK 텍스트에서는 비슷합니다. UTF-16은 JavaScript 문자열 내부, Windows API, Java/C# 문자열 길이 작업에 관련됩니다.

Base64 인코딩 크기는 어떻게 계산되나요?

Base64 인코딩은 입력의 3바이트를 4개의 ASCII 문자로 변환합니다. 공식은 ceil(byteLength / 3) * 4입니다. 이로 인해 약 33%의 크기 오버헤드가 발생하며, URL, JSON 페이로드, 데이터 URI에 데이터를 포함할 때 중요합니다.

개발자가 자주 만나는 바이트 크기 제한은?

주요 제한: HTTP 쿠키(4KB), URL 길이(2,048자), HTTP 헤더(8KB), localStorage(원본당 5MB), SMS 메시지(GSM-7 160자 / Unicode 70자), 데이터베이스 VARCHAR 컬럼(DB 엔진마다 다름).

코드 예제

// UTF-8 byte size using TextEncoder
function getUtf8ByteSize(str) {
  return new TextEncoder().encode(str).byteLength;
}

// UTF-16 byte size (JavaScript internal encoding)
function getUtf16ByteSize(str) {
  return str.length * 2; // Each code unit = 2 bytes
}

// Base64 encoded size from UTF-8
function getBase64Size(str) {
  const utf8Len = new TextEncoder().encode(str).byteLength;
  return Math.ceil(utf8Len / 3) * 4;
}

// Usage
const text = 'Hello, World! 안녕하세요 🌍';
console.log('Characters:', [...text].length);     // 19
console.log('UTF-8 bytes:', getUtf8ByteSize(text)); // 33
console.log('UTF-16 bytes:', getUtf16ByteSize(text)); // 40
console.log('Base64 size:', getBase64Size(text));   // 44

관련 도구