根本原因是phpmyadmin默认导出utf-8编码csv,而wps双击时按gbk解析且忽略bom,导致字节错位显示“锟斤拷”;解决需手动导入选utf-8或导出时改用gb2312编码。
phpmyadmin 导出的 csv 文件在 wps 中打开乱码,根本原因不是“wps 不行”,而是它默认用系统编码(windows-936 / gbk)去解 utf-8 编码的文件,且没识别 bom —— 你看到的 “锟斤拷” 或方块,是字节流错位解析后的必然结果。
确认导出文件真实编码:别猜,直接看
双击打开乱码 CSV 前,先用 VS Code 打开,看右下角状态栏显示的编码;或者命令行执行:file -i your_file.csv。常见结果有:
-
utf-8或utf-8-with-bom:phpMyAdmin 默认行为,但 WPS 双击不认 BOM -
iso-8859-1或us-ascii:说明导出时选错了字符集(比如误选了 latin1) -
gbk或cp936:少见,但若数据库本身是 gbk 排序规则且导出设置为 gb2313,则可能匹配 WPS
WPS 手动指定编码打开:绕过双击陷阱
WPS 的「双击打开」会跳过编码选择,必须主动走导入流程:
- 启动 WPS 表格 → 「数据」选项卡 → 「从文本/CSV」
- 选中该 CSV 文件 → 弹窗中「文件原始格式」下拉框选
UTF-8(不是“自动检测”) - 下一步中确保「分隔符」勾选「逗号」,「引号」勾选「"」,再点「加载」
这个流程强制 WPS 按 UTF-8 解码,BOM 有无都不影响。如果选成 ANSI 或留空,默认就是 GBK,必然乱码。
导出时就规避:改 phpMyAdmin 设置比事后补救更稳
与其每次手动选编码,不如让导出文件天生适配 WPS。在 phpMyAdmin 导出页操作:
使用 qbo-mileage CLI 及用户凭证,从 Airtable、Outlook 或 Google Calendar 记录生成 QuickBooks Online 里程 CSV 文件。
- 「导出方法」选「自定义」
- 「格式」选
CSV - 关键一步:「导出格式」区域 → 「文字字符集」下拉选
gb2312(不是 utf-8,也不是 gbk) - 「列分隔符」保持逗号,「字段包围符」保持双引号,「换行符」选
CRLF
选 gb2312 是因为 WPS 对它的兼容性最稳定;虽然它不能覆盖所有 Unicode 字符,但中文简体场景已足够。若数据含 emoji 或生僻字,才需坚持 UTF-8 + BOM + 手动导入。
fgetcsv 读取时乱码?PHP 层也要对齐编码
如果你不是双击打开,而是用 PHP 的 fgetcsv() 读这个文件再入库,乱码会延续到数据库:
-
fopen($file, 'r')不带编码参数,底层按当前 locale 解——Windows 下常是 GBK - 正确做法:先用
mb_detect_encoding()或file -i确认源文件编码,再用iconv()或mb_convert_encoding()转成 UTF-8 再喂给fgetcsv() - 更稳妥:导出时加 BOM(
\xEF\xBB\xBF),并在fopen()后fseek($fp, 3)跳过,避免fgetcsv()把 BOM 当字段内容
BOM 在 WPS 双击时无效,在 PHP 里却可能被当普通字符吞掉——这个细节最容易被忽略,一错到底。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!










