php 扩展pdo查询SqlServer中文乱码问题

默认是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::setAttributePDO::setAttributePDO::preparePDOStatement::bindColumnPDOStatement::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 编码处理返回的字符串数据。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值