我的项目基于 PHP 构建并连接到 MS SQL Server。我正在使用 sqlsrv 库。MS SQL 中的字段类型是 nvarchar。当我定义连接参数时,我还输入了“utf8”。这是:
global $cnf;
$cnf = array();
$cnf["mssql_user"] = "xxx";
$cnf["mssql_host"] = "xxx";
$cnf["mssql_pw"] = "xxx";
$cnf["mssql_db"] = "xxx";
$cnf["CharacterSet"] = "**UTF-8**";
将记录插入数据库时,对于越南语内容和中文内容,我使用:
$city = iconv('UTF-8', 'utf-16le', $post['city']);
$params = array(array($city, null, SQLSRV_PHPTYPE_STRING(SQLSRV_ENC_BINARY)));
$sql= "INSERT INTO tblCityGarden (city) VALUES(?)
$stmt = sqlsrv_query( $this->dbhandle, $sql, $params);
越南文和中文插入数据OK(越南文和中文数据库中存储的数据是正确的)。
但是,当我将记录加载回网络时,会出现奇怪的字符 (?, �)。我尝试了一些 php 作为 iconv、mb_detect_encoding、mb_convert_encoding 并在互联网上搜索了许多结果,但它无法正常工作。如何显示正确的数据
请有此问题经验的人