首页 > 解决方案 > 如何回显 nvarchar 而不是“??”

问题描述

我在带有 nvarchar 的 SQL Server 中有数据,例如“გიორგი შონია”,但是当我尝试在 PHP 中回显时,我得到“?????? ?????”。

我试过了header('content-type: text/html; charset=utf-8');

$sql = "SELECT * FROM user_login";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
     echo 'ras';
    die( print_r( sqlsrv_errors(), true) );
}

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
      echo $row['user_username'].", ".$row['user_fullname']."<br />";
}

标签: phpsql-serverutf-8nvarchar

解决方案


我找到了答案,对于那些将面临这个问题的人,我们可以将“添加"CharacterSet" => "UTF-8”到 conn 数组中,例如我有:

$connectionInfo = array( "Database"=>"xxx", "UID"=>"xxx", "PWD"=>"xxxx");

我改为:

$connectionInfo = array( "Database"=>"xxx", "UID"=>"xxx", "PWD"=>"xxxx","CharacterSet" => "UTF-8");

推荐阅读