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

関連ツール