Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

PHP + SQL Server - Comment définir le jeu de caractères pour la connexion ?

Le jeu de caractères client est nécessaire mais pas suffisant :

ini_set('mssql.charset', 'UTF-8');

J'ai cherché pendant deux jours comment insérer des données UTF-8 (à partir de formulaires Web) dans MSSQL 2008 via PHP. J'ai lu partout que vous ne pouvez pas, vous devez d'abord convertir en UCS2 (comme le recommande la solution de cypher). Sous Windows, SQLSRV est considéré comme une bonne solution, que je n'ai pas pu essayer, car je développe sur Mac OSX.

Cependant, le manuel FreeTDS (ce que PHP mssql utilise sur OSX) dit d'ajouter une lettre "N" avant le guillemet d'ouverture :

mssql_query("INSERT INTO table (nvarcharField) VALUES (N'űáúőűá球最大的采购批发平台')", +xon);

Selon cette discussion, le caractère N indique au serveur de convertir en Unicode.https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft -sql-serveur