modx evolutionとphp7.4で日本語文字化け

mariadbにコンテンツを書き込む時に、日本語が文字化けすることに気付いた。
判断した理由は、サイト構築時に作成したページの日本語は文字化けしないのだから、utf8で保存済みのデータは問題なく読み込めているからだ。
念の為にdbのレコードを直接確認したら、追加した記事のcontentsカラムのレコードが文字化けしている。
dbのレコードを直接日本語で書き換えれば、ブラウザの表示は文字化けしない。
となれば、modxからmariadbを操作している処理を探すしかない。
modxのフォーラムで昔のバージョンで同じように日本語というかマルチバイト文字が化けてしまう事象があって、正しい対応ではないが、少なくとも日本語ならば問題なく対策しましたみたいな運営の記事があった。
具体的な修正内容までは触れていないが、どうやらdbapiとやらが存在していてそこをいじったらしい。
ubuntuのvpsでdbapiを探すとフォルダがある。
その下に、mysql用のphpと、mysqli用のphpファイルがあった。
お決まりのsqlインジェクション対策の処理をescapeというモジュールで実装しているとかフォーラムで書かれていたので、それを探す。
自分の環境で実行されるパスを見ていくと、utf8を別の文字コードに変換してそれをsqlインジェクション対応するための変換処理をしてから再びutf8に戻している。
どうやらここが、今回の事象を引き起こすようになったらしい。
自分の環境では、スパム書き込み対応が面倒くさいので、コメントも受け付けないし、メールフォームも受け付けない。
captchaとか使えば機械的なスパムはブロックできるが、そればかりではない。
やはりsqlインジェクションは怖いのでブロックするのは必須。
逆にマルチバイト文字は日本語しか使わないので、理由がわからないmb convertは不要。
phpファイルを修正して対応完了。