用PHP和MySQL解决字符集问题



旧页面具有当前设置:

  1. MySQL数据库和表:latin1_swedish_ci
  2. HTML:<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />

多年来一切都很好。

现在我已经从FTP下载了PHP文件,更新了代码,因为我的编辑器使用UTF8,所以我对PHP文件中的文本表示有问题。

如果我更改为<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">,则HTML文件中的文本将正确显示,但不会显示数据库中的文本。

如果我将DB和表设置为utf8_bin,并通过file_get_contents() > $mysqli->set_charset('utf8') > $mysqli->multi_query($sql_file)导入数据,则文本将正确显示。

但是%LIKE%搜索不起作用了?

我认为UTF8更简单。解决这个问题的正确步骤是什么?

尝试对DB表使用utf8mb4_general_ci并尝试为您的数据库连接设置正确的字符集。DB的第一个SQL查询:

$sql = "SET NAMES utf8mb4";

之后运行SQL查询

最新更新