使用PDO将SQL Server表中的UTF-8字符获取到PHP中

使用PDO将SQL Server表中的UTF-8字符获取到PHP中,php,sql-server,pdo,utf-8,Php,Sql Server,Pdo,Utf 8,我有一个SQL Server表,其中包含翻译成各种语言的国家名称。我正在尝试在网页中显示此内容。但是,数据库中存储为Amérique du Nord的内容在PHP中显示为Amérique du Nord 我的PDO连接字符串是 sqlsrv:SERVER=<SERVER>;DATABASE=<DATABASE> sqlsrv:SERVER=;数据库= SQL Server没有字符集选项,但根据文档,默认为UTF-8 我曾尝试将该列强制转换为varbinary,但这只

我有一个SQL Server表,其中包含翻译成各种语言的国家名称。我正在尝试在网页中显示此内容。但是,数据库中存储为
Amérique du Nord
的内容在PHP中显示为
Amérique du Nord

我的PDO连接字符串是

sqlsrv:SERVER=<SERVER>;DATABASE=<DATABASE>
sqlsrv:SERVER=;数据库=
SQL Server没有字符集选项,但根据文档,默认为UTF-8

我曾尝试将该列强制转换为
varbinary
,但这只是给了我一个无法转换为字符的ascii数字。我还尝试了一些mb_字符编码的变体,最终使字符成为中文

有关更多信息:

我在IIS7.5上,通过FastCGI运行PHP

脚本正在发送utf-8标头


在同一页面的其他区域,我成功地输出了从.po文件读取的UTF-8。只有来自数据库查询的文本被错误编码。

Ã
被正确地编码为UTF-8,并被误解为Windows-1252或类似版本。您的PHP应用程序是否使用UTF-8?据我所知,我正在使用
header('Content-Type:text/html;charset=UTF-8')设置标题并设置了
mb_内部编码(“UTF-8”)也是。还有什么我需要设置或更改的吗?(应用程序在IIS上)第一项将页面声明为UTF-8(这并不意味着它实际使用的是UTF-8)。第二项与页面编码AFAIK无关。请让我链接到常见的问题。您标记为重复的问题是对不同平台(Apache)和不同数据库(MySQL)上的问题的响应。通过PDO的MSSQL连接上不存在该问题答案中的任何设置。表的编码是什么?