You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从NameCheap迁移至Vultr后MySQL非英文文本乱码问题求助

嘿,我来帮你搞定这个非英文文本乱码的问题!这种情况大多是字符集在导出、导入或者数据库连接的某个环节没对齐导致的,咱们一步步排查解决:

第一步:检查目标数据库和表的字符集设置

首先得确保你的Vultr上的数据库和表本身就是用UTF-8系列的字符集(推荐utf8mb4,支持更多特殊字符,比utf8更全面):

  • 登录MySQL终端(可以通过ServerPilot的数据库管理工具,或者SSH连接服务器后用命令登录),执行这条命令查看数据库的字符集:
    SHOW CREATE DATABASE your_database_name;
  • 如果输出里的CHARACTER SET不是utf8mb4或者utf8,赶紧修改:
    ALTER DATABASE your_database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  • 接着检查单个表的字符集,执行:
    SHOW CREATE TABLE your_table_name;
    要是表的字符集不对,用这条命令修改(如果有多个表,得逐个执行,或者写脚本批量处理):
    ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
第二步:重新导入时明确指定字符集

你说导出文件是UTF-8,但导入时如果没告诉MySQL用UTF-8解析,它可能会用默认的latin1字符集来处理,直接导致乱码:

  • 如果用命令行导入,一定要加上字符集参数:
    mysql -u your_db_username -p --default-character-set=utf8mb4 your_database_name < your_exported_sql_file.sql
  • 如果用phpMyAdmin这类可视化工具,导入的时候在“导入选项”里把“文件字符集”选成UTF-8,同时确认目标数据库的字符集已经是utf8mb4/utf8。
  • 另外,打开你的导出SQL文件,看看开头有没有SET NAMES utf8mb4;或者SET CHARACTER SET utf8mb4;的语句,如果没有,手动加在文件最顶部,这样导入时会强制MySQL用正确的字符集读取文件。
第三步:确保PHP连接数据库时设置正确的字符集

PHP5.6不管用的是mysqli还是旧的mysql扩展,连接数据库后都必须显式设置字符集,不然可能会出现连接层的字符集不匹配:

  • 如果你用的是mysqli扩展,代码里要加这一行:
    $conn = mysqli_connect('localhost', 'db_user', 'db_password', 'db_name');
    // 连接成功后设置字符集
    mysqli_set_charset($conn, 'utf8mb4');
    
  • 要是用的是旧的mysql扩展(虽然不推荐,但PHP5.6还支持),这么写:
    $conn = mysql_connect('localhost', 'db_user', 'db_password');
    mysql_select_db('db_name', $conn);
    mysql_set_charset('utf8mb4', $conn);
    
  • 还要检查PHP的配置:登录ServerPilot仪表盘,找到你的应用,进入“PHP”选项卡,确认default_charset设置的是UTF-8,如果不是改成它,然后重启PHP服务。
第四步:ServerPilot环境的额外确认

ServerPilot默认配置一般没问题,但还是可以检查下:

  • 确保Web服务器(Nginx/Apache)的响应头包含charset=utf-8。如果是Apache,可以在应用的.htaccess文件里加一行:AddDefaultCharset UTF-8;如果是Nginx,在ServerPilot的应用配置里确认charset utf-8;已经存在。

按照上面的步骤走一遍,应该就能解决乱码问题了!

内容的提问来源于stack exchange,提问作者Darshan Gowda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:45:07