J'ai eu un problème similaire et j'ai essayé tous les paramètres que j'ai pu trouver sur le Web - en vain.
Dans mon cas, le problème était la configuration de FreeTDS elle-même. Sous Linux, le fichier est /etc/freetds/freetds.conf
J'ai dû changer la version en 7.0 (peut-être que d'autres numéros fonctionnent aussi. Je viens d'essayer 7.0)
[global]
# TDS protocol version
tds version = 7.0
Après cela, le pilote a semblé accepter les modifications du jeu de caractères comme.
ini_set('mssql.charset', 'UTF-8');
Btw :le changement est immédiatement effectif, pas besoin de redémarrer quoi que ce soit par la suite