vscode java环境中文乱码的问题

发布于:2025-02-27 ⋅ 阅读:(14) ⋅ 点赞:(0)

先说我的结论:

由于我的系统是windows的,所以vscode使用的是默认gbk的编码进行的。
但是我的目的是全部都使用utf-8,因为我的程序始终是要去linux上去运行的,总不能在本地是好的,然后到服务器上就不行了吧,所以,我就没有把方向往gbk方向上去改。

文件编码 编译指定编码 控制台输出显示编码 结果
utf-8 gbk utf-8 sys输出正常
内存日志打印乱码
utf-8 utf-8 gbk sys输出正常
内存日志打印乱码
utf-8 utf-8 utf-8 正常

文件编码

可以看vscode 右下角状态栏,如果不知道打开的话在窗口视图里面找找,实在不行就网上找找其他帖子。

编译指定编码

launch.json

{
    "configurations": [
        {
            "type": "java",
            "name": "Application",
            "request": "launch",
            "mainClass": "com.wbu.Application",
            "vmArgs": "-Dfile.encoding=UTF-8",
            "projectName": "wbucat"
        }
    ]
}
# 能够在启动命令中看到 '-Dfile.encoding=UTF-8' 代表配置成功
& 'C:\Program Files\Java\jdk1.8.0_361\bin\java.exe' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\THISIS~1\AppData\Local\Temp\cp_8ppcgvjhttmwnc3xoixn0jep3.jar' 'com.wbu.Application' 

控制台输出显示编码

settings.json

{
    "terminal.integrated.defaultProfile.windows": "PowerShell",
    "terminal.integrated.profiles.windows": {
        "Command Prompt": {
            "path": "cmd.exe",
            "args": ["/K", "chcp 65001 >null"]
        }
    },
    "terminal.integrated.defaultProfile.windows": "Command Prompt"
    // "terminal.integrated.profiles.windows": {
    //     "PowerShell": {
    //         "source": "PowerShell",
    //         "args": ["-NoExit","/c","chcp 65001 >null"], // 强制UTF-8
    //         "overrideName": true,
    //         //"path": "C:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe"
    //         //"path": "powershell.exe"
    //     }
    // },
    // "terminal.integrated.defaultProfile.windows": "PowerShell",
}

我配置的是电脑cmd的命令窗口,电脑的命令窗口还有一个powershell。一般来说vscode控制台前面有一个 “PS ”,一般就是powershell。

我的电脑在配置powershell显示的时候一直没有成功,可能有两个原因

  1. powershell 需要管理员权限。
  2. 配置powershell的配置信息写错了。

注:在调试的过程中我发现settings.json 中的某一些参数如果配置错了的话,其实程序还是可以启动,也不会报错。例如:我曾经把boolean 值填成了3,程序还是可以启动。我预计应该是不会生效,这些填错了的参数。