旧页面具有当前设置:
- MySQL数据库和表:
latin1_swedish_ci
- 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查询