SQLSRV 致命错误:翻译 Unicode 时出现严重错误

Posted

技术标签:

【中文标题】SQLSRV 致命错误:翻译 Unicode 时出现严重错误【英文标题】:SQLSRV Fatal error: Severe error translating Unicode 【发布时间】:2015-08-10 21:01:39 【问题描述】:

我正在尝试在 php 中为 SQL Sever 数据库运行基本的 while 循环。我得到以下错误:

Fatal error: Severe error translating Unicode

该代码适用于另一个脚本,因此我认为这与我正在查询的表有关。这是我正在使用的代码

if(isset($_GET['uid']) && $_GET['uid'] != '')
$uid = $_GET['uid'];
// check for user
$staffSQL = "SELECT * FROM staff WHERE userid = '".$uid."'";
$params = array();
$staff = sqlsrv_query( $conn, $staffSQL, $params, array("Scrollable"=>"buffered"));

$numStaff = sqlsrv_num_rows($staff);

if($numStaff  < 1)
    $response["error"] = TRUE;
    $response["error_msg"] = "No projects found!";
else
    while( $row = sqlsrv_fetch_array( $staff, SQLSRV_FETCH_ASSOC) ) 
        foreach($row as $key => $value) 
            echo "$key = $value <br />";
        
    

经过一番谷歌搜索,我找到了this link,但那里的建议代码只返回令人费解的胡言乱语。

【问题讨论】:

【参考方案1】:

好的,经过一番谷歌搜索后,我发现this page 表示解决方案是在 sqlsrv_connect 函数中添加 CharacterSet 选项。

$result = sqlsrv_connect($hostname, array(
    'UID' => $username,
    'PWD' => $password,
    'Database' => $database,
    'ConnectionPooling' => ($pooling) ? 1 : 0,
    "CharacterSet" => "UTF-8"       // <---- voila
));

我已经对此进行了测试,并且效果很好。

【讨论】:

以上是关于SQLSRV 致命错误:翻译 Unicode 时出现严重错误的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:调用未定义函数 sqlsrv_connect()

php:致命错误:调用未定义函数 sqlsrv_connect()

致命错误:使用 wamp php 5.5.12 调用未定义函数 sqlsrv_connect()

如何在我的 windows 2008 Server 2008 R2 上安装 pdo_sqlsrv? [关闭]

php sqlsrv 驱动程序未被识别

运行 XCUITest 时出现 dyld 致命错误