MSSQL2005 データベースにアクセスし、そこからデータを読み取り、結果をメールで送信する php スクリプトがあります。
一部の列名とフィールド自体の両方に特殊文字が含まれています。
ブラウザー (Web サーバー iis) を介してスクリプトにアクセスすると、クエリが正しく実行され、メールの内容が (対象ユーザーに対して) 正しくエンコードされます。ただし、コンソールから php を実行すると、クエリが失敗します (列名に特殊文字が含まれているため)。クエリ内の特殊文字を chr() の呼び出しと latin-1 の文字コードに置き換えると、クエリは正しく実行されますが、結果も latin-1 でエンコードされるため、メールに正しく表示されません。PHP/MSSQL ドライバー/… が 2 つのシナリオで異なるエンコーディングを使用しているのはなぜですか? それを回避する方法はありますか?
ご存じのように、SQLAgent (または taskmanager など) を使用してスクリプトをスケジュールしたいので、コンソールが必要です。