Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

PHP + SQL Server - Como definir charset para conexão?


O conjunto de caracteres do cliente é necessário, mas não suficiente:
ini_set('mssql.charset', 'UTF-8');

Eu procurei por dois dias como inserir dados UTF-8 (de formulários da web) no MSSQL 2008 através do PHP. Eu li em todos os lugares que você não pode, você precisa converter para UCS2 primeiro (como a solução do cypher recomenda).

No entanto, o manual do FreeTDS (o que o PHP mssql usa no OSX) diz para adicionar uma letra "N" antes da citação de abertura:
mssql_query("INSERT INTO table (nvarcharField) VALUES (N'űáúőűá球最大的采购批发平台')", +xon);

De acordo com essa discussão, o caractere N informa ao servidor para converter para Unicode.https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft -servidor SQL