我正在使用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
答案 0 :(得分:0)
问题是未启用PDO_sqlsrv
。
同样,问题在于默认情况下SqlServerConnector.php
使用pdo_dblib
驱动程序而不是Laravel 5.5中的pdo_sqlsrv
。在更高版本中更改了优先级。
链接帮助了我