使用apache的windows上php中的MSSQL问号

使用apache的windows上php中的MSSQL问号,php,sql-server,windows,sql-server-2008,Php,Sql Server,Windows,Sql Server 2008,我在Windows Server 2008 R2上安装了Microsoft SQL Server 2008 R2 以及Apache上的PHP5.6 在SQL Server中,我有一个带有校对西里尔文的数据库 在SQLServerManagementStudio中,我可以看到一切,没有任何问题 但是 然后我会这样做: <?php $conn = sqlsrv_connect( $serverName, $connectionInfo); $sql = "SELECT NAME FROM NA

我在Windows Server 2008 R2上安装了Microsoft SQL Server 2008 R2

以及Apache上的PHP5.6

在SQL Server中,我有一个带有校对西里尔文的数据库

在SQLServerManagementStudio中,我可以看到一切,没有任何问题

但是

然后我会这样做:

<?php
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$sql = "SELECT NAME FROM NAMES";
$stmt = sqlsrv_query( $conn, $sql );
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
    echo $row['NAME'];
}

在浏览器中设置正确的字符集:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
所以

如果Microsoft(burn in hell)没有SQL server中使用的语言的语言包,那么您将看到问号

要解决此问题,请将语言包安装到服务器副本中


再次感谢您,microsoft,感谢您的愚蠢和对utf-8的厌恶。

您没有告诉您的输出环境您正在吐出西里尔文字,因此它将以环境使用的任何字符集(例如iso8859)呈现您的文字。您指的是输出环境吗?从iso8859到哪里去了?这不是浏览器的问题。sqlsrv_fetch_数组得到问号。@AlexanderMatrosov怀疑。无论您使用什么来查看输出,都可能不知道如何直观地表示数据。如果你没有在浏览器中看到这一点,那么你需要修复你正在使用的任何东西的编码问题。无论如何,这个方法不起作用。在Chrome中,我看到了一些问题
header("Content-Type: text/html; charset=windows-1251");