IIS + PHP8 / Could not convert the script from the detected encoding

IIS と PHP 7.x 系で動いているソフトを PHP 8.2 で動かそうと思うと、以下のようなエラーが出ました。

PHP Fatal error:  Could not convert the script from the detected encoding "UTF-8" to a compatible encoding in ほにゃらら on line ほにゃらら

以後、他の PHP スクリプト(例えば phpinfo() を実行するだけのスクリプト) を実行させてもエラーが出続けます。(IIS を再起動しないと復旧しない)

require_once の行でエラーとなっていました。

require_once しているファイルに ef bb bf の BOM (UTF-8 を示す) が付いていました。

このファイルを dos2unix で変換すると動作するようになりました。

dd if=in_file of=out_file bs=1 skip=3

で BOM を取っても動作します。

1969年生まれ。大学卒業後から15年以上にわたり、通信、カードリーダ、セキュリティ業界においてソフトウェア開発に従事。その後、2012年5月に当社を設立。電力、交通、車載向けの組み込み系システム、旅行業界向けの WEB システム開発、音声合成システム、消防向けのシステム開発等に参画。
低コストかつシンプルで安定稼働するシステムの実現を目指し、アーキテクチャ設計に取り組んでいます。
会社情報と代表者守屋のプロフィール詳細