PHP + SQL Server - How to set charset for connection?

前端 未结 13 1207
借酒劲吻你
借酒劲吻你 2020-12-01 06:54

I\'m trying to store some data in a SQL Server database through php.

Problem is that special chars aren\'t converted properly. My app\'s charset is iso-8859-1 and th

13条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-01 06:58

    Client charset is necessary but not sufficient:

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

    I searched for two days how to insert UTF-8 data (from web forms) into MSSQL 2008 through PHP. I read everywhere that you can't, you need to convert to UCS2 first (like cypher's solution recommends). On Windows SQLSRV said to be a good solution, which I couldn't try, since I am developing on Mac OSX.

    However, FreeTDS manual (what PHP mssql uses on OSX) says to add a letter "N" before the opening quote:

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

    According to this discussion, N character tells the server to convert to Unicode. https://softwareengineering.stackexchange.com/questions/155859/why-do-we-need-to-put-n-before-strings-in-microsoft-sql-server

提交回复
热议问题