On a Linux machine, I am using PDO DBLIB to connect to an MSSQL database and insert data in a SQL_Latin1_General_CP1_CI_AS table. The problem is that when I am trying to insert chinese characters (multibyte) they are inserted as 哈市香åŠåŒºç æ±Ÿè·¯å·.
My (part of) code is as follows:
$DBH = new PDO("dblib:host=$myServer;dbname=$myDB;", $myUser, $myPass);
$query = "
    INSERT INTO UserSignUpInfo
    (FirstName)
    VALUES
    (:firstname)";
$STH = $DBH->prepare($query);
$STH->bindParam(':firstname', $firstname);
What I've tried so far:
- Doing - mb_convert_encodingto- UTF-16LEon- $firstnameand CAST as VARBINARY in the query like:- $firstname = mb_convert_encoding($firstname, 'UTF-16LE', 'UTF-8');- VALUES (CAST(:firstname AS VARBINARY));- Which results in inserting the characters properly, until there are some not-multibyte characters, which break the PDO execute. 
- Setting my connection as utf8: - $DBH = new PDO("dblib:host=$myServer;dbname=$myDB;charset=UTF-8;", $myUser, $myPass); $DBH->exec('SET CHARACTER SET utf8'); $DBH->query("SET NAMES utf8");
- Setting - client charsetto UTF-8 in my freetds.conf- Which had no impact. 
Is there any way at all, to insert multibyte data in that SQL database? Is there any other workaround? I've thought of trying PDO ODBC or even mssql, but thought it's better to ask here before wasting any more time.
Thanks in advance.
EDIT:
I ended up using MSSQL and the N data type prefix. I will swap for and try PDO_ODBC when I have more time. Thanks everyone for the answers!
 
     
     
    
 
     
     
    