Char Count in PHP and Html

test.php | test.html

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">を挿入する必要がある。