私も同様の問題を抱えていて、ウェブ上で見つけたすべての設定を試しましたが、無駄でした。
私の場合、問題はFreeTDS自体の構成でした。 Linuxでは、ファイルは/etc/freetds/freetds.conf
です。バージョンを7.0に変更する必要がありました(他の番号でも機能する可能性があります。7.0を試しただけです)
[global]
# TDS protocol version
tds version = 7.0
この後、ドライバーは文字セットの変更を次のように受け入れたようです。
ini_set('mssql.charset', 'UTF-8');
ところで:変更はすぐに有効になり、後で何も再起動する必要はありません