default_charsetはデフォルトの文字コードのことではない。
(中略)
default_charsetとは出力時にHTTPヘッダとして送信する文字コード名
のこと。
な、なんだってー!……と思ったが、上の記述は大きな誤解を生む表現じゃないかと思う。
上記だと、あたかもdefault_charsetはHTTPヘッダにしか利用されていないかのように読めるが、『default_charsetは様々なマルチバイト文字関数のデフォルト値としても使われる』ので、デフォルトの文字コードと呼んでもまあ間違いではないと思う。
http://php.net/manual/ja/ini.core.php#ini.default-charset
PHP 5.6.0 以降は "UTF-8" がデフォルトになり、 htmlentities() や html_entity_decode() そして htmlspecialchars() で encoding パラメータを省略した場合は、このデフォルト値を利用します。 また、default_charset の値は、 iconv 関数で iconv.input_encoding、 iconv.output_encoding、 iconv.internal_encoding が未設定の場合や、 mbstring 関数で mbstring.http_input mbstring.http_output mbstring.internal_encoding が未設定の場合のデフォルトとしても用いられます。
すべてのバージョンの PHP は、PHP から送信する Content-Type ヘッダのデフォルト値としてこれを使います。 ただし、header() で上書きされている場合は別です。