バイトカウンター - 文字列バイトサイズ計算 オンライン
UTF-8、UTF-16、ASCII、ISO-8859-1、Base64エンコーディングで文字列のバイトサイズを計算します。一般的なサイズ制限と比較 — 100%クライアントサイド、サーバーへのデータ送信なし。
よくある質問
バイトカウンターとは何ですか?
バイトカウンターは、さまざまな文字エンコーディング(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