test-utf8.php | test-utf8.html
phpとhtmlでは、ファイル内のcharacterの認識が異なる。 PHPは"Z"を2文字、JSは"Z"を4文字とみなしている。 ファイルサイズから調べた"Z"のバイト数は、4バイトなので、 JSは1文字、1バイトとみなしている。 なぜ、PHPはこの4バイトを2文字とみなしているのか? UTF-8と解釈しているのだろうか? 試しに<meta charset="utf-8">を挿入して、 確実にUTF-8になるようにしてみよう。 予想どおり、htmlでも文字数は2文字になる。 つまり、PHPでは、ファイルのエンコードは、ディフォルトのUTF-8で解釈されるが、 htmlファイルでは、ディフォルトのASCIIで解釈される。 htmlファイルを、UTF-8で解釈するには、 <meta charset="utf-8">を挿入する必要がある。