最近在trae中运行java项目时,发现控制台输出的中文乱码,导致解析bootstrap.yml报错。经过一番搜索,发现是由于java项目中使用的字体编码与trae默认的编码不一致导致的。
问题原因
java虚拟机默认使用utf-8编码,而trae默认使用gbk编码,导致乱码。
解决编辑器的启动编码问题
可以通过.vscode文件夹下的配置文件来设置编辑器的启动编码
- 在项目根目录下创建.vscode文件夹,然后在文件夹下创建settings.json文件。
- 在settings.json文件中添加以下内容:
json
{
// 当 pom.xml 这类构建文件发生变化时,如何更新 Java 语言服务的项目配置。
"java.configuration.updateBuildConfiguration": "automatic",
// ava 扩展「依赖」视图里包的显示方式
"java.dependency.packagePresentation": "hierarchical",
// Maven 扩展视图的呈现方式
"maven.view": "hierarchical",
// Windows 上 Trae 集成终端默认使用哪个 profile
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
// JVM 默认字符集
"args": ["-NoExit", "-Command", "[Console]::OutputEncoding = [System.Text.Encoding]::UTF8; $env:JAVA_TOOL_OPTIONS='-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8 -Dstdout.encoding=UTF-8 -Dstderr.encoding=UTF-8'"]
}
}
}
- 重点是
terminal.integrated.profiles.windows,其中args字段是设置jvm的默认字符集的。 - 重启trae,重新运行项目,问题解决。
注意事项
- 如果项目里包含多个项目,需要将配置文件放到最外面的根目录下。这样项目启动时候才生效
