从MSSQL传递到PHP时不显示欧元符号

时间:2019-03-28 11:53:19

标签: php sql-server laravel character-encoding

我正在使用Laravel将数据从MSSQL服务器传递到PHP。之后,我必须将数据传回以将其保存在数据库中。

包含符号的字符串显示为“?” 而不是该符号。

mb_detect_encoding($str)(不带符号的字符串)返回ASCII

否则,mb_detect_encoding($str)返回 false 。因此,json_encode($str)不起作用,并且也会返回 false

mb_convert_encoding($str, 'UTF-8', 'ASCII');返回有效的UTF-8编码。

因此,我可以通过此函数运行从MSSQL获取的所有数据,以获取UTF-8,但是我应该如何将其传递回来呢?以UTF-8编码?

MSSQL排序规则:SQL_Latin1_General_CP1_CI_AS,Laravel驱动程序:sqlsrv

1 个答案:

答案 0 :(得分:0)

问题是未启用PDO_sqlsrv。 同样,问题在于默认情况下SqlServerConnector.php使用pdo_dblib驱动程序而不是Laravel 5.5中的pdo_sqlsrv。在更高版本中更改了优先级。

链接帮助了我