# マルチバイト文字列

# はじめに

全ての文字をシングルバイトで一対一表現可能な言語は数多くありますが、 文字表現に単一バイトによる表現範囲を越えるほど多くの文字を必要とする言語も多くあります (1 バイトは 8 ビットから構成されます。各ビットには、1 あるいは 0 の 2 種類の値しか保持できません。そのため、単一のバイトで表すことのできる値は 256 (2 の 8 乗) 種類までとなります)。 マルチバイト文字のエンコーディング法は、 256 を越える文字を通常のビット単位の符号化システムで表現するために開発されました。

マルチバイトエンコーディングで符号化された文字列を (trim, split, splice などで) 処理する際、こうしたエンコーディングでは二つ以上の連続するバイトが 一つの文字を表す可能性があるため、特別な関数を使用する必要があります。 マルチバイトに対応しない文字列関数を文字列に適用した場合、 マルチバイト文字の先頭バイトまたは終了バイトを検出できずに文字列を壊し、 多くの場合には元の意味を失わせてしまう可能性があります。

`mbstring` はマルチバイト対応の文字列関数を提供し、 PHP でマルチバイトエンコーディングを処理することを容易にします。 それに加えて、`mbstring` は、 可能な範囲での文字エンコーディングの変換を処理します。 `mbstring` は UTF-8 や UCS-2 のような Unicode に基づくエンコーディングや多くのシングルバイトエンコーディングを処理するのに便利です (サポートされる文字エンコーディング に一覧があります)。

- インストール/設定
  - インストール手順
  - 実行時設定
- 定義済み定数
- サポートされるエンコーディングの概要
- 日本語のマルチバイト文字に関する基本事項
- HTTP 入出力
- サポートされる文字エンコーディング
- 関数のオーバーロード機能
- PHP の文字エンコーディングに関する要件
- マルチバイト文字列 関数
  - mb_check_encoding — 文字列が、指定したエンコーディングで有効なものかどうかを調べる
  - mb_chr — Unicode のコードポイントに対応する文字を返す
  - mb_convert_case — 文字列に対してケースフォールディングを行う
  - mb_convert_encoding — ある文字エンコーディングの文字列を、別の文字エンコーディングに変換する
  - mb_convert_kana — カナを("全角かな"、"半角かな"等に)変換する
  - mb_convert_variables — 変数の文字コードを変換する
  - mb_decode_mimeheader — MIME ヘッダフィールドの文字列をデコードする
  - mb_decode_numericentity — HTML 数値エンティティを文字にデコードする
  - mb_detect_encoding — 文字エンコーディングを検出する
  - mb_detect_order — 文字エンコーディング検出順序を設定あるいは取得する
  - mb_encode_mimeheader — MIMEヘッダの文字列をエンコードする
  - mb_encode_numericentity — 文字を HTML 数値エンティティにエンコードする
  - mb_encoding_aliases — 既知のエンコーディング・タイプのエイリアスを取得
  - mb_ereg — マルチバイト対応の正規表現マッチ
  - mb_ereg_match — マルチバイト文字列が正規表現に一致するか調べる
  - mb_ereg_replace — マルチバイト文字列に正規表現による置換を行う
  - mb_ereg_replace_callback — マルチバイト文字列にコールバック関数を用いた正規表現による置換を行う
  - mb_ereg_search — 指定したマルチバイト文字列が正規表現に一致するか調べる
  - mb_ereg_search_getpos — 次の正規表現検索を開始する位置を取得する
  - mb_ereg_search_getregs — マルチバイト文字列が正規表現に一致する部分があるか調べる
  - mb_ereg_search_init — マルチバイト正規表現検索用の文字列と正規表現を設定する
  - mb_ereg_search_pos — 指定したマルチバイト文字列が正規表現に一致する部分の位置と長さを返す
  - mb_ereg_search_regs — 指定したマルチバイト文字列が正規表現に一致する部分を取得する
  - mb_ereg_search_setpos — 次の正規表現検索を開始する位置を設定する
  - mb_eregi — マルチバイトをサポートし、大文字小文字を無視した正規表現マッチ
  - mb_eregi_replace — マルチバイト文字列に大文字小文字を区別せずに正規表現による置換を行う
  - mb_get_info — mbstring の内部設定値を取得する
  - mb_http_input — HTTP 入力文字エンコーディングを検出する
  - mb_http_output — HTTP 出力文字エンコーディングを設定あるいは取得する
  - mb_internal_encoding — 内部文字エンコーディングを設定あるいは取得する
  - mb_language — 現在の言語を設定あるいは取得する
  - mb_lcfirst — 文字列の最初の文字を小文字にする
  - mb_list_encodings — サポートするすべてのエンコーディングの配列を返す
  - mb_ltrim — 文字列の先頭にあるホワイトスペースを取り除く
  - mb_ord — 文字の Unicode コードポイントを取得する
  - mb_output_handler — 出力バッファ内で文字エンコーディングを変換するコールバック関数
  - mb_parse_str — GET/POST/COOKIE データをパースし、グローバル変数を設定する
  - mb_preferred_mime_name — MIME 文字設定を文字列で得る
  - mb_regex_encoding — 現在のマルチバイト正規表現用のエンコーディングを取得または設定する
  - mb_regex_set_options — マルチバイト正規表現関数のデフォルトオプションを取得または設定する
  - mb_rtrim — 文字列の末尾にあるホワイトスペースを取り除く
  - mb_scrub — 文字列に含まれる不正なバイト列を代替文字に置き換える
  - mb_send_mail — エンコード変換を行ってメールを送信する
  - mb_split — マルチバイト文字列を正規表現により分割する
  - mb_str_pad — マルチバイト文字列を、特定の長さまで別のマルチバイト文字列で埋める
  - mb_str_split — マルチバイト文字列を受取り、文字の配列を返す
  - mb_strcut — 文字列の一部を得る
  - mb_strimwidth — 指定した幅で文字列を丸める
  - mb_stripos — 大文字小文字を区別せず、 文字列の中で指定した文字列が最初に現れる位置を探す
  - mb_stristr — 大文字小文字を区別せず、 文字列の中で指定した文字列が最初に現れる位置を探す
  - mb_strlen — 文字列の長さを得る
  - mb_strpos — 文字列の中に指定した文字列が最初に現れる位置を見つける
  - mb_strrchr — 別の文字列の中で、ある文字が最後に現れる場所を見つける
  - mb_strrichr — 大文字小文字を区別せず、 別の文字列の中である文字が最後に現れる場所を探す
  - mb_strripos — 大文字小文字を区別せず、 文字列の中で指定した文字列が最後に現れる位置を探す
  - mb_strrpos — 文字列の中に指定した文字列が最後に現れる位置を見つける
  - mb_strstr — 文字列の中で、指定した文字列が最初に現れる位置を見つける
  - mb_strtolower — 文字列を小文字にする
  - mb_strtoupper — 文字列を大文字にする
  - mb_strwidth — 文字列の幅を返す
  - mb_substitute_character — 置換文字を設定あるいは取得する
  - mb_substr — 文字列の一部を得る
  - mb_substr_count — 部分文字列の出現回数を数える
  - mb_trim — 文字列の先頭および末尾にあるホワイトスペースを取り除く
  - mb_ucfirst — 文字列の最初の文字を大文字にする

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open