先说我的结论:
由于我的系统是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显示的时候一直没有成功,可能有两个原因
- powershell 需要管理员权限。
- 配置powershell的配置信息写错了。
注:在调试的过程中我发现settings.json 中的某一些参数如果配置错了的话,其实程序还是可以启动,也不会报错。例如:我曾经把boolean 值填成了3,程序还是可以启动。我预计应该是不会生效,这些填错了的参数。