西部数码虚拟主机rawurlencode搜索方法_iconv与mb_convert
rawurlencode搜索的核心是编码统一。HTML 页面 meta charset、PHP 文件保存编码、数据库连接字符集、数据库表字符集,四个地方一致才不会乱码。UTF-8 站点全用 utf8mb4,GBK 站点全用 gbk,不要混用。
AJAX 搜索乱码:AJAX 请求编码和页面一致,通常没问题。如果 AJAX 返回 JSON 乱码,PHP 输出前加 header('Content-Type: application/json; charset=utf-8'),json_encode 只支持 UTF-8,数据要先转成 UTF-8。jQuery 的 $.ajax 默认 UTF-8。
参考(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); ```
常见 CMS 的搜索编码:WordPress 默认 UTF-8,搜索不用转码;织梦 DedeCMS 有 GBK 和 UTF-8 版本,下载对应版本,搜索自动处理;Discuz 有 GBK 和 UTF-8,后台设置编码。用 CMS 不用自己写转码,选对编码版本即可。
GBK 转 UTF-8 是长期趋势。GBK 一个中文 2 字节,UTF-8 一个中文 3 字节,数据库占用会增加 50%,但 UTF-8 支持更多字符(emoji、生僻字),和国际标准接轨。转码时用 iconv 批量转文件,数据库用 ALTER TABLE CONVERT TO CHARACTER SET utf8mb4。

更新时间:2026-08-27 12:13:21
上一篇:美橙互联虚拟主机文件管理技巧_面板文件管理常见问题实操