mb_chr

関数の概要

mb_chr は、PHPのマルチバイト文字関数の一つで、指定したUnicodeコードポイントから対応するマルチバイト文字を取得するための関数です。特にUTF-8などのマルチバイト文字エンコーディングで文字を扱う際に便利です。

パラメータの説明

  • int $codepoint – 取得したい文字のUnicodeコードポイントを指定します。例えば「65」は大文字のAに対応します。
  • string $encoding = mb_internal_encoding() – 変換後の文字列のエンコーディングを指定します。省略すると現在の内部文字エンコーディングが使われます。主に「UTF-8」が推奨されます。

戻り値

指定したコードポイントに対応する文字を文字列として返します。コードポイントが無効な値の場合は FALSE を返します。

使用例

基本的な使い方

$char = mb_chr(0x3042, 'UTF-8');  // ひらがなの「あ」を取得
echo $char;  // あ

これはUnicodeのコードポイント0x3042(ひらがなの「あ」)をUTF-8文字として取得し、出力しています。

英字の例

echo mb_chr(65);  // 出力: A
echo mb_chr(66);  // 出力: B
echo mb_chr(67);  // 出力: C

Unicodeコードポイントを直接指定して、英大文字を取得できます。エンコーディング省略時は内部エンコーディングが使われます。

絵文字の取得例

echo mb_chr(0x1F600, 'UTF-8');  // 😀 (ニコニコ顔の絵文字)

絵文字のようなサロゲートペアを含む文字も、正しくUTF-8に変換して取得可能です。

関連する関数

  • mb_ord() – 文字からUnicodeコードポイントを取得
  • chr() – ASCIIコードポイントから1バイト文字を取得(マルチバイト非対応)
  • mb_strlen() – マルチバイト文字列の長さを取得
  • mb_convert_encoding() – 文字列のエンコーディング変換

まとめ

mb_chr はUnicodeのコードポイントからマルチバイト文字を安全に取得できる便利な関数です。UTF-8を主に使う環境で、文字列処理を正確に行いたい場合に役立ちます。絵文字や日本語など多バイト文字をプログラム内で動的に生成したいときにぜひ活用してください。