HOWTO · PHP

PHP の utf8_encode 関数

この記事では、PHP の utf8_encode 関数の目的を紹介します。

このページの内容

この記事では、utf8_encode() 関数を紹介し、その目的をコード例で説明します。

UTF-8 と PHP の utf8_encode() 関数の紹介

UTF-8 は、Unicode で使用される文字エンコーディングです。 これは、既存の ASCII がすべての既存の文字をエンコードできなかったために発明されました。

ASCII は 256 文字のみの保存に制限されており、英語のアルファベット (大文字と小文字) と一部の特殊文字にしか使用できませんでした。 その後、Web ページが世界中で使用されている多くの言語とその特殊文字を扱うようになると、別のエンコーディングが登場しました。

ASCII はスペースが限られているため、すべてを保持できませんでした。 そのため、Unicode の概念が導入されました。

コード ポイントを使用することで、Unicode は無数の文字を格納できます。

UTF-8 は、各コード ポイントを対応するバイナリにマップします。 名前が示すように、8 ビットを使用して文字を格納します。

PHP では、utf8_encode() 関数が ISO-8859-1 文字列を同等の UTF-8 バージョンに変換します。 ISO-8859-1 文字列は、HTML 4.01 で使用されていた文字セットです。

このセットで表される最初の 128 文字は ASCII と同じです。

ただし、関数 utf8_encode() は、そのパラメーターが ISO-8859-1 文字列かどうかを検証しません。 この関数は、UTF-8 に変換された文字列を返します。

以下の関数の使用例を見てみましょう。

コード例:

$iso_string = "&#49 &#50 &#51";
$utf8_string = utf8_encode($iso_string);
echo $utf8_string;

出力:

1 2 3

上記の例では、文字列 &#49 &#50 &#51 は ISO-8859-1 エンコーディングであり、UTF-8 文字列に変換されています。 ここで、&#49 は 1 に、&#50 は 2 に、&#51 は 3 に相当します。

PHP での utf8_encode() 関数の目的

utf8_encode() は、UTF-8 エンコーディングの概念を中心に展開しています。 エンコーディングを使用して、あるコンピューターから別のコンピューターに Unicode を転送できます。

utf8_encode() 関数は、PHP アプリケーションでいくつかの特殊文字をエンコードする必要がある場合に使用されます。

たとえば、デバナーガリー スクリプトである文字 क を $char 変数に格納します。 utf8_encode() 関数を使用して、エンコードされた文字をエンコードして出力します。

ファイルが既に UTF-8 でエンコードされている場合、特殊文字を utf8_encode() 関数でエンコードする必要はありません。

コード例:

$char = "क";
$utf8_string = utf8_encode($char);
echo $utf8_string;

出力:

à¤

ここで、UTF-8 でエンコードされた文字 ठは、インターネットで使用できる文字 क のユニバーサル コードとして機能します。 コンピュータは、エンコーディングを機械語 (バイトのシーケンス) に変換して解釈します。