マルチバイト文字とは?
マルチバイト文字とは、1文字を表現するのに「2バイト以上」のデータを必要とする文字のことです。
日本語・中国語・韓国語など、文字数が多くて複雑な言語に使われます。
英語などのアルファベットは「1バイト」で表せますが、日本語の「漢字」や「ひらがな」「カタカナ」は、1バイトでは足りず、2バイト以上使って表現する必要があるため「マルチバイト(multi-byte)」と呼ばれます。
よく使われる場面
- 日本語など多言語対応のシステム開発
- 文字数制限のあるフォームの設計(全角・半角の扱い)
- 文字列処理(文字数カウント、切り出しなど)のプログラム
- データベースやメール送信時の文字化け対策
なぜ意識する必要があるの?
- 文字化けの原因になりやすい(特に文字コードが合っていないとき)
- 「1文字=1バイト」と思って処理すると、文字列の長さが狂う・データが壊れる
- システムによっては、マルチバイト文字を扱えない・制限があることも
関連する用語
- シングルバイト文字:1バイトで表せる文字(英数字、記号など)
- UTF-8:国際的な文字コード規格。マルチバイト文字にも対応し、多言語で広く使われる
- Shift_JIS / EUC-JP:日本語用の文字コード(古くから使われていた)
例:日本語の「漢」という文字
- UTF-8だと「漢」は 3バイト
- Shift_JISだと 2バイト → つまり「マルチバイト文字」は環境によってバイト数も変わる!
よくある誤解・注意点
- 「1文字=1バイト」とは限らない! → 日本語は1文字でも複数バイト
- 文字数制限では「バイト数制限」と「文字数制限」は別物!(例:50バイト制限 = 全角25文字まで)
- PHPやJavaScriptで文字列処理する場合、mb_(マルチバイト用)関数を使わないとバグの原因になることも
まとめ
マルチバイト文字は、日本語のように複雑な文字を扱うための文字形式です。文字数やデータ量、文字化けなどに大きく関わるため、特にプログラムやデータ処理の現場ではしっかり意識する必要がある概念です。扱う場面によっては、文字コードや使用関数を正しく選ぶことが重要になります。