【问题标题】:SQL Server not returning custom letters to phpSQL Server 没有向 php 返回自定义字母
【发布时间】:2020-08-02 23:02:31
【问题描述】:

我在尝试将我的玩家的原始昵称从 SQL Server 获取到 PHP 时遇到了一些麻烦。

这是来自 SQL Server Management Studio:

UserID      NickName
46          GM
2000001     GM2
2009594     ????????????????????????™

在我从 PHP 中提取之后,NickName ????????????????????????™ 将返回为 ????????? ??????

我怎样才能完全转换为 SQL Server?

$serverConnect = new PDO("odbc:Driver={SQL Server};Server={$ip};Database={$db}; Uid={$user};Pwd={$pass};");
$serverConnect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$serverConnect->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

$nicks = $serverConnect->query("
   SELECT UserID, NickName 
   FROM Sys_Users_Detail 
   WHERE UserName = '$me'
")->fetchAll();

echo $nicks[2]['NickName'];

我使用的是 Microsoft SQL Server 14。

【问题讨论】:

  • 您需要展示您的 PHP 代码。您如何查看数据以了解其存储是否正确?
  • 对不起,我忘了添加代码。我已经编辑过了。
  • 指定您正在使用的 SQL 名称和版本。
  • 正如我上面问的“您如何查看数据以确保其存储正确?”
  • 完成。谢谢。

标签: php sql-server


【解决方案1】:

您需要将昵称字符集设置为 utf-8

$serverConnect->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NickName 'utf8'");

【讨论】:

  • 我没有使用 MySQL。此命令不适用于 MSSQL。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-07-02
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多