SQL Server PHP中的奇怪字符,但不是手动查询


SQL Server Strange Characters from PHP but not Manual Query

我有php代码,可以使用以下语句将数据更新到sql server

UPDATE [table] SET [third]='Several times (2–5x)' WHERE ...

然而,sql server中更新的数据显示了奇怪的字符Several times (2–5x),但如果我试图在Management Studio中执行sql语句,它不会给我奇怪的字符。

这是我的PHP代码:

$sql = "UPDATE [table] SET [third]='Several times (2–5x)' WHERE ..."
$sql_update_user_result = odbc_exec($connection, $sql);

我做错了什么?

我觉得这是一个编码问题。

在执行更新查询之前,请尝试查询"SET NAMES utf8"。

odbc_exec($connection, "SET NAMES utf8");
$sql = "UPDATE [table] SET [third]='Several times (2–5x)' WHERE ..."
$sql_update_user_result = odbc_exec($connection, $sql);

2–5x中的连字符不是ascii减号,而是另一个类似的穿孔标记(u+2013)。只需删除-并键入-。