默认是utf-8
或者可以强制utf-8
PDO::SQLSRV_ATTR_ENCODING=>PDO::SQLSRV_ENCODING_UTF8
microsoft文档内容:(常量 (Microsoft Drivers for PHP for SQL Server) - PHP drivers for SQL Server | Microsoft Learn)
编码常量
PDO::SQLSRV_ATTR_ENCODING 属性可传递给 PDOStatement::setAttribute、PDO::setAttribute、PDO::prepare、PDOStatement::bindColumn 和 PDOStatement::bindParam。
传递给 PDO::SQLSRV_ATTR_ENCODING 的可用值如下
PDO_SQLSRV 驱动程序常量 | 说明 |
---|---|
PDO::SQLSRV_ENCODING_BINARY | 数据是来自服务器的原始字节流,无需执行编码或转换。 对 PDO::setAttribute 无效。 |
PDO::SQLSRV_ENCODING_SYSTEM | 数据是 8 位字符,该格式如在系统上设置的 Windows 区域设置的代码页中所指定。 任何多字节字符或未映射到此代码页中的字符都会替换为单字节问号 (?) 字符。 |
PDO::SQLSRV_ENCODING_UTF8 | 数据采用 UTF-8 编码。 这是默认编码。 |
PDO::SQLSRV_ENCODING_DEFAULT | 使用 PDO::SQLSRV_ENCODING_SYSTEM(如果在连接过程中已指定)。 使用连接的编码(如果已在准备语句中指定)。 |
PDO::SQLSRV_ENCODING_SYSTEM
是 PHP PDO 扩展用于连接 Microsoft SQL Server 数据库时的一个字符编码常量。这个常量用于指定从数据库返回的字符串数据的预期字符编码,以便在应用程序中正确地解码和显示这些数据。
具体来说,PDO::SQLSRV_ENCODING_SYSTEM
常量表示使用系统默认的字符编码来处理从数据库返回的字符串。这意味着返回的字符串数据将按照数据库所在操作系统的默认字符编码进行解码。
这在一些特定的情况下可能很有用,特别是当你的应用程序需要与不同字符编码设置的 SQL Server 数据库进行交互时。通过使用 PDO::SQLSRV_ENCODING_SYSTEM
,你可以确保从不同的数据库中返回的字符串数据在应用程序中都能够正确地显示,因为它们将被解码为操作系统默认的字符编码。
然而,需要注意的是,使用系统默认字符编码可能会导致一些跨平台的问题,因为不同操作系统的默认字符编码可能会有所不同。如果你的应用程序要求更严格的字符编码一致性,可能需要根据需要明确指定字符编码,例如使用 PDO::SQLSRV_ENCODING_UTF8
来强制使用 UTF-8 编码处理返回的字符串数据。文章来源:https://www.toymoban.com/news/detail-682488.html
文章来源地址https://www.toymoban.com/news/detail-682488.html
到了这里,关于php 扩展pdo查询SqlServer中文乱码问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!