使用 PHP 函数 sybase_connect 的国家字符问题

Problem with national characters using the PHP function sybase_connect

我正在使用 PHP 函数 sybase_connect 连接到 mssql 数据库并像这样检索数据:

$mssql=sybase_connect($Host, $User, $Password, "cp1257");
$mssql->query("EXEC AuthLoginList");
while($mssql->get_row()){
  echo $mssql->f('id')." ".$mssql->f('name')." ".$mssql->f('surname')."<br>";
}

但是,国家符号提取不正确。问卷出现在他们的位置:

数据库版本为 Microsoft SQL Server 2012 (SP4-GDR) (KB4583465) - 11.0.7507.2 (X64)

以下编码用于文本字段:

使用什么编码并不重要。结果总是一样的。提供问号而不是国家符号。例如:

$mssql=sybase_connect($Host, $User, $Password, "cp1257");
$mssql=sybase_connect($Host, $User, $Password, "iso-8859-1");
$mssql=sybase_connect($Host, $User, $Password, "utf8");
$mssql=sybase_connect($Host, $User, $Password, "utf-8"); 
$mssql=sybase_connect($Host, $User, $Password, "iso_1");
$mssql=sybase_connect($Host, $User, $Password, "windows-1257");
$mssql=sybase_connect($Host, $User, $Password, "UNICODE");

也许有人可以给我建议如何解决这个问题。

经过长时间阅读TDS协议文档,我找到了解决方案:

> export LANG lt_LT

通过这样设置环境变量LANG,我环境的MSSQL数据库获得了正确的编码ISO-8859-13。