zhangtaishan1 发表于 2024-1-31 17:51

关于sql server与mysql查询中文乱码的问题

从php中的mysql数据库是UTF8编码,去读取sql server的GBK编码格式,查询出来的中文是乱码,用过iconv函数也不行,在不修改编码格式的情况下请问如何处理中文乱码问题呢?

xiaotian947859 发表于 2024-1-31 19:09

处理中文乱码问题通常涉及字符集转换。在从MySQL数据库(UTF-8编码)读取数据,然后在SQL Server中进行查询(GBK编码)时,你可能遇到中文乱码问题。尽管iconv函数是一种处理字符集转换的方式,但在某些情况下可能无法正常工作。

以下是一种可能的解决方案,尝试使用mb_convert_encoding函数进行字符集转换:


// 假设从MySQL数据库获取的数据存储在 $mysqlData 中
// 以及 SQL Server 连接对象为 $sqlServerConnection

// 从MySQL读取的数据是UTF-8编码
$mysqlData = "从MySQL数据库获取的数据";

// 转换为GBK编码
$gbkData = mb_convert_encoding($mysqlData, 'GBK', 'UTF-8');

// 在SQL Server中进行查询
$sql = "SELECT * FROM 表名 WHERE 列名 = '$gbkData'";
$result = sqlsrv_query($sqlServerConnection, $sql);

// 处理查询结果...
上述代码中,mb_convert_encoding函数用于将从MySQL数据库获取的数据从UTF-8编码转换为GBK编码。然后,你可以使用转换后的数据进行在SQL Server中的查询。

请确保在代码中替换实际的表名和列名。此外,确保连接到数据库的方式和执行查询的方式是正确的。

如果这仍然无法解决问题,可能需要进一步检查数据库连接和查询的设置,确保它们在字符集方面是一致的。

freelive 发表于 2024-2-1 16:04

https://blog.csdn.net/k_scott/article/details/8491090

hamsike 发表于 2024-2-2 10:57

前面加个n 行不行?

zhangtaishan1 发表于 2024-3-29 08:00

xiaotian947859 发表于 2024-1-31 19:09
处理中文乱码问题通常涉及字符集转换。在从MySQL数据库(UTF-8编码)读取数据,然后在SQL Server中进行查询 ...

是从php中的mysql读取sql server中文时乱码,不是从sql server读取mysql,其中sql server时GBK格式,mysql时utf8格式

zhangtaishan1 发表于 2024-3-29 08:09

freelive 发表于 2024-2-1 16:04
https://blog.csdn.net/k_scott/article/details/8491090

是从php中的mysql读取sql server中文时乱码,不是从sql server读取mysql,其中sql server时GBK格式,mysql时utf8格式
页: [1]
查看完整版本: 关于sql server与mysql查询中文乱码的问题