文字化けの原因

結局、文字化けの原因はごく一般的に言われるphpの設定で回避できた。
php-fpm用のphp.iniファイルでマルチバイト文字に関する設定を変更した。
httpでもらうデータの文字コードと、表示データとして出力するコード、つまりサーバー内部で処理する文字コードの変換設定を自動で行うかの設定値が、自動変換しないようにした。
httpからの入力文字コードも将来的に未使用になり、php7.2からは設定しないことが推奨されていたので、そちらも変更。
また、文字コードの参照順番もサーバの標準エンコードであるutf8を先頭に変更。
マルチバイト文字コードの判定はプログラムが提供するライブラリでも不具合があるので、自前でやる方法も説明されたりしている。
今はまだ、日本語のマルチバイト文字は比較的サポートされているが、そのうちに、中国語や韓国語はサポートされるが、日本語はまともに表示されないことになる可能性もある。
完全にit後進国になってしまわないともかぎらない。