搜索

首页  >  问答  >  正文

mysqli set_charset()的正确使用

我对正确使用有疑问 $mysqli->set_charset()。我已经很多年没有在我的网站上使用此功能了。现在我正在重写我的连接脚本,并希望正确应用 $mysqli->set_charset() 。目前该网站仍然基于“latin1”(但我很快就会切换到 UTF-8 (utf8mb4)。)

我的服务器(我自己管理)上的 MySQLi 多年来一直使用 latin1 配置。我想现在添加这个 $mysqli->set_charset("latin1") 不会有什么坏处吗?

如果 MySQLi 默认配置为 utf8mb4,如果没有 $mysqli->set_charset() 函数,我的网站上会出现奇怪的编码字符吗?

我想确认一下我的假设。

P粉908643611P粉908643611350 天前393

全部回复(1)我来回复

  • P粉674999420

    P粉6749994202024-01-11 15:16:05

    mysqli::set_charset() 设置连接的字符集,即“我通过此连接发送的所有字符串都将使用这个 > 编码,我也希望编码回来”。您需要将其与您在 PHP 端使用的编码相匹配。

    也就是说,即使当前设置错误,如果您更改当前值,也可能会导致数据损坏。这是因为在某些情况下,只要设置一致,从您的数据库传输到数据库的过程中被破坏的数据就会以相同的方式被破坏。

    在进行任何更改之前,您需要确定当前使用的编码是什么,以及数据库中的数据是否被破坏。从那里您可以制定一条路径来确保所有编码都匹配,您的数据在所有步骤中都正确编码和处理,以及修复现有数据。

    一如既往,请参阅主帖:UTF-8 贯穿始终

    额外的想法:

    回复
    0
  • 取消回复