vr-shopxo-plugin/docs/SQL_FIX_garbled_plugin_name.md

1.8 KiB
Raw Permalink Blame History

SQL Fix: VR票务插件名乱码

症状

侧边栏显示 VR票务(应为 VR票务

根因

plugins 表的 name 字段在插件安装时被存储为 Latin1 编码的 UTF-8 字节序列。

票务 的 UTF-8 字节 E7 A5 8A E5 8A B1 被当作 Latin1 解读:

  • E7 → â(â)
  • A5 → ¥
  • 8A → Š
  • E5 → å
  • 8B
  • A1 → ¡

结果:VR票务VR票务

修复 SQL在 phpMyAdmin 或 MySQL CLI 中执行)

-- 1. 确认当前值(应该是乱码 VR票务
SELECT id, plugins, name FROM sx_plugins WHERE plugins = 'vr_ticket';

-- 2. 直接更新为正确的中文名称
UPDATE sx_plugins
SET name = 'VR票务'
WHERE plugins = 'vr_ticket';

-- 3. 确认修复结果
SELECT id, plugins, name FROM sx_plugins WHERE plugins = 'vr_ticket';
-- 应该显示VR票务

注意

  • sx_plugins 是默认表前缀。如果您的 ShopXO 使用其他前缀,请相应修改(例如 shopxo_pluginsplugins 等)。
  • 可以在 phpMyAdmin → ShopXO 数据库 → sx_plugins 表中直接编辑 name 字段。
  • 如果乱码字符串不完全匹配 VR票务,请在 phpMyAdmin 中查看原始数据并根据实际情况调整 WHERE 条件。

附加:检查其他可能的乱码字段

-- 检查 vrt_power 表的 name 字段(如果有)
SELECT id, name FROM sx_vrt_power WHERE name LIKE '%ç¥%' OR name LIKE '%票务%';

-- 如果有乱码,一并修复
UPDATE sx_vrt_power SET name = REPLACE(name, 'VR票务', 'VR票务') WHERE name = 'VR票务';

预防措施

未来安装插件时,确保:

  1. phpMyAdmin/MySQL 连接字符集是 utf8mb4
  2. plugin.json 文件本身是 UTF-8 编码(无 BOM
  3. ShopXO 数据库配置的 charset 是 utf8mb4