Once again with the charset issues when talking to DB’s 🙂
I have two enviroments running Zend Server. Bot of these communicate to a SQL Server 2000 using the mssql extension. None of them has any value given for the charset in the settings of the extension. For one it works and for the other one it returns data in the wrong encoding.
The problem became noticed when this data was beeing inserted into a MySQL database and it screamed with SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF6m' for column 'cust_lastname' at row 1.
I tried using SET NAMES utf8 to get the SQL Server connection to return the correct data, but it complains and says that NAMES is not a recognized SET statement. Looking around most people even recommend using this but it doesn’t seem to be part of SQL Server 2000 🙂
So, what should I do? How do I, WITHOUT fiddling with the SQL Server database/tables, tell it to send me the data in UTF-8 encoded format?
EDIT:
Some more info…
- SQL Server uses the Finnish_Swedish_CI_AS collation
- MySQL has every table in UTF-8 format and uses utf8_unicode_ci
I didn’t find a good solution and ended up converting to and from utf8 in my application. If this is encapsulated within a class it doesn’t riddle the code. But a way to actually tell the SQL server which encoding to use during communication would be better.