【问题标题】:Problems with charset in a json with data from a mssql database带有来自 mssql 数据库的数据的 json 中的字符集问题
【发布时间】:2016-11-09 20:19:49
【问题描述】:

我得到了以下脚本,它返回 mssql 数据库的数据,它工作正常,但是像“甓ᔓã”等特殊字符以一种奇怪的方式显示。

据我所见,因为它是一个 mssql,这可能会很痛苦.. 没有找到任何确切的响应。

我尝试添加此行以修复:

  • ini_set('mssql.charset', 'UTF-8');
  • "Database"=>"programaplo","UID"=>"--","PWD"=>"--","CharacterSet"=>"UTF-8");
  • header('Content-type: application/json; Charset=UTF-8');

脚本

    <?php
error_reporting(1);
ini_set('mssql.charset', 'UTF-8');

$serverName = "mssql3.gear.host";

/* Get UID and PWD from application-specific files.  */
$connectionInfo = array( "Database"=>"programaplo", "UID"=>"--", "PWD"=>"--","CharacterSet"=>"UTF-8");
$conn = sqlsrv_connect($serverName, $connectionInfo);

if( $conn ) {
     echo "Connection established.<br />";
}else{
     echo "Connection could not be established.<br />";
     die( print_r( sqlsrv_errors(), true));
}

$tsql = "SELECT * FROM Obras";
$stmt = sqlsrv_query($conn, $tsql);

if( $stmt === false ) {
     echo "Error in executing query.</br>";
     die( print_r( sqlsrv_errors(), true));
}

echo "Query: sucesso \n";

$json = array();

while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
        $json[] = $row;
     }

header('Content-type: application/json; Charset=UTF-8');
echo json_encode($json);

sqlsrv_free_stmt($stmt);
sqlsrv_close($conn); //Close the connnectiokn first

exit();
?>

结果:

{"Id":2,"NomeObra":"Super Olimpia","idCliente":"Associa\u00e7\u00e3o Super Olimpia","DataPLevantamento":"4 de agosto de 2016","DataRLevantamento":"4 de agosto de 2016","Estado":"Obra conclu\u00edda ","DataRMateriais":"6 de setembro de 2016","DataInicioObra":"18 de setembro de 2016","DataConclusao":"20 de outubro de 2016","DataVestoria":"18 de setembro de 2016","Obs":"","Prompor":"Gas Fenosa","Levantpor":"Ploran\/Paulo","executpor":"Ploran"}

问题:

Associa\u00e7\u00e3o

【问题讨论】:

标签: php sql-server json utf-8


【解决方案1】:

Associa\u00e7\u00e3o 是在 JSON 中编码二进制(或非 ASCII)字符的官方方式。 每个 Json 解析器 [可以|应该] 理解这种表示法。

见:JSON and escaping characters

【讨论】:

    猜你喜欢
    • 2018-03-04
    • 2017-11-01
    • 2013-04-05
    • 1970-01-01
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 2018-01-18
    • 1970-01-01
    相关资源
    最近更新 更多