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 Cookie(4KB)、URL长度(2,048字符)、HTTP头(8KB)、localStorage(每个源5MB)、SMS消息(GSM-7 160字符 / Unicode 70字符)和数据库VARCHAR列(因数据库引擎而异)。

代码示例

// 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

相关工具