2012-04-24 21 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);