我的知识记录

虚拟主机搜索URL编码_UTF-8与GBK统一

万网虚拟主机做搜索URL编码,先确定网站编码。用浏览器 F12 看 Response Headers 的 Content-Type charset,看页面 meta charset,看数据库表的字符集。三个一致就不用转码,不一致就在搜索处理时转成数据库编码。

PHP 搜索转码代码:$keyword = $_GET['keyword']; $keyword = mb_convert_encoding($keyword, 'UTF-8', 'auto'); auto 自动检测编码(UTF-8, GBK, BIG5)。或用 iconv('GBK', 'UTF-8//IGNORE', $keyword),//IGNORE 忽略无法转换的字符。转码后再拼 SQL 搜索。

参考(PHP搜索转码代码): ``` <?php // 接收关键词 $keyword = isset($_GET['keyword']) ? trim($_GET['keyword']) : ''; // 自动转码为UTF-8 $keyword = mb_convert_encoding($keyword, 'UTF-8', 'auto'); // 或指定编码转换 // $keyword = iconv('GBK', 'UTF-8//IGNORE', $keyword); // 防注入(PDO预处理) $stmt = $pdo->prepare("SELECT * FROM 文章表 WHERE 标题 LIKE ? OR 内容 LIKE ?"); $like = "%$keyword%"; $stmt->execute([$like, $like]); $results = $stmt->fetchAll(); // 输出JSON时指定编码 header('Content-Type: application/json; charset=utf-8'); echo json_encode($results, JSON_UNESCAPED_UNICODE); ```

搜索优化:中文搜索用 LIKE '%关键词%' 会全表扫描,数据量大了慢。可以用 MySQL 全文索引(FULLTEXT)、Sphinx、Elasticsearch 等搜索引擎。编码统一是基础,搜索引擎也要求 UTF-8。

搜索关键词安全:转码后还要防 SQL 注入,用 PDO 预处理或 mysqli 绑定参数,不要直接拼 SQL。关键词长度限制(如 50 字符),特殊字符过滤。搜索功能是注入高发区,编码统一和参数绑定都要做。

虚拟主机搜索URL编码_UTF-8与GBK统一

标签:

更新时间:2026-08-27 12:10:18

上一篇:详解网页打开出错ERR_INVALID_RESPONSE无效响应

下一篇:虚拟主机受攻击处理流程_溯源方法_安全维护流程