Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

PHP + SQL Server - Wie stellt man den Zeichensatz für die Verbindung ein?

Client-Zeichensatz ist notwendig, aber nicht ausreichend:

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

Ich habe zwei Tage lang gesucht, wie man UTF-8-Daten (aus Webformularen) über PHP in MSSQL 2008 einfügt. Ich habe überall gelesen, dass Sie das nicht können, Sie müssen zuerst zu UCS2 konvertieren (wie die Lösung von Cypher empfiehlt). Unter Windows soll SQLSRV eine gute Lösung sein, die ich nicht ausprobieren konnte, da ich auf Mac OSX entwickle. P>

Das FreeTDS-Handbuch (was PHP mssql unter OSX verwendet) sagt jedoch, dass vor dem Eröffnungszitat ein Buchstabe "N" hinzugefügt werden soll:

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

Gemäß dieser Diskussion weist das N-Zeichen den Server an, in Unicode zu konvertieren.https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft -sql-server