Il set di caratteri del cliente è necessario ma non sufficiente:
ini_set('mssql.charset', 'UTF-8');
Ho cercato per due giorni come inserire dati UTF-8 (da moduli Web) in MSSQL 2008 tramite PHP. Ho letto ovunque che non puoi, devi prima convertire in UCS2 (come consiglia la soluzione di cypher). Su Windows SQLSRV ha detto di essere una buona soluzione, che non ho potuto provare, dato che sto sviluppando su Mac OSX.
Tuttavia, il manuale di FreeTDS (cosa usa PHP mssql su OSX) dice di aggiungere una lettera "N" prima della virgoletta di apertura:
mssql_query("INSERT INTO table (nvarcharField) VALUES (N'űáúőűá球最大的采购批发平台')", +xon);
Secondo questa discussione, N carattere dice al server di convertire in Unicode.https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft -sql-server