2012-04-24 22 views
1

請問,我應該怎麼做才能用UTF-8將數據存儲到SQL Server(2005)中?我的html頁面是UTF-8編碼,表中的列是nvarchar類型,連接字符集設置爲UTF-8,但俄語字符串'ЛогистикаДругое'存儲爲'????????? ??????」進入表格。我正在使用sqlsrv v2。這裏是連接PARAMS:PHP sqlsrv 2和UTF-8

$dbConnParams = array('server' => "server", // SQL Server 
         'params' => array("Database"  => "dbname", 
             "UID"   => 'user', 
             "PWD"   => 'pass', 
             "CharacterSet" => 'UTF-8')); 

$dbh = sqlsrv_connect($dbConnParams['server'], $dbConnParams['params']); 

(PHP 5.2.17,IIS7.5,MS SQL Server 2005中,SQLSRV 2)

回答

1

它是由歷史原因造成的,當我們用ODBC沒有約束力PARAMS:

$sql = "usp_cis_upd 
      @Key = " . $key . ", 
      @Name = '" . $name . "'"; 
odbc_exec($dbh, $sql); 

如果PARAMS被綁定,字符串被重新編碼,並保存好:

$sql = "usp_cis_upd 
      @Key = ?, 
      @Name = ?"; 

$params = array($Key, 
       $Name); 

$stmt = sqlsrv_query($dbh, $sql, $params);