GoLand项目文件编码必须设为UTF-8(无BOM),否则源文件字符串字面量运行时即损坏;需在File Encodings中统一设为UTF-8,Terminal编码单独配置为UTF-8,并重启IDE生效。

GoLand 项目文件编码必须设为 UTF-8(无 BOM)
Go 源文件本身若存为 GBK 或带 BOM 的 UTF-8,go build 虽能通过,但字符串字面量在运行时就是损坏的字节流——这是最隐蔽的乱码源头。VS Code 或 GoLand 右下角状态栏必须显示「UTF-8」,点击后选「Save with Encoding」强制重存。已有文件可用 xxd main.go | head -1 检查开头是否为 ef bb bf;若是,用 sed -i '1s/^\xef\xbb\xbf//' main.go 去掉 BOM。
GoLand 控制台输出中文乱码:改 VM 参数 + 控制台编码
GoLand 内置终端(Terminal)和运行配置(Run Configuration)的编码是两套独立设置,只调一个没用:
- 在
Help → Edit Custom VM Options中追加-Dfile.encoding=UTF-8(若提示创建,就新建) - 进入
File → Settings → Editor → File Encodings,把「Global Encoding」「Project Encoding」「Default encoding for properties files」三项全设为UTF-8 - 关键一步:在
Settings → Tools → Terminal中,把「Shell path」下方的「Encoding」也手动改成UTF-8
改完必须重启 GoLand,否则不生效。
GoLand 运行程序时控制台仍乱码?检查 Run Configuration
即使全局编码设对了,单个运行配置可能覆盖它:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 点右上角运行配置下拉箭头 →
Edit Configurations… - 选中你的
Go Build或Go Test配置 → 展开「Environment variables」 - 添加变量:
GODEBUG=madvdontneed=1不相关,别加;真正要加的是:GO111MODULE=on也不解决乱码;重点看「Working directory」和「Program arguments」无误后,直接勾选「Add content root to classpath」?不用——Go 不走 classpath。真正有效的是:在「Environment variables」里加GOROOT和GOPATH?也不对。实际应确认「Use the default encoding」未被取消勾选;若已取消,手动设为UTF-8 - 更稳妥做法:取消勾选「Use the default encoding」,再在右侧下拉菜单中显式选
UTF-8
这项设置常被忽略,尤其当你复制过旧配置或从模板生成时。
Windows 下 CMD/Powershell 终端仍乱码?别依赖 IDE 全包
GoLand 的 Terminal 标签页本质是启动 shell 进程,它受系统终端默认行为约束:
- CMD 用户:每次打开 Terminal 后先执行
chcp 65001,或在 GoLand 的Settings → Tools → Terminal → Shell path改为cmd.exe /k chcp 65001 >nul - Powershell 用户:必须在 Terminal 初始化脚本里加
$OutputEncoding = [System.Text.Encoding]::UTF8;GoLand 默认不自动注入,需手动配置「Shell path」为powershell.exe -ExecutionPolicy ByPass -Command "$OutputEncoding = [System.Text.Encoding]::UTF8; Invoke-Expression $args" -args - 终极省事法:直接用 Windows Terminal(Microsoft Store 官方版),默认即 UTF-8,且兼容性远超原生 CMD
IDE 的编码设置管不到操作系统级终端解码逻辑,这一层脱节是 Windows 用户反复踩坑的核心原因。










