在windows环境,vscode+java扩展+spring扩展搭建Java开发环境时,经常出现中文乱码的问题。其实出现中文乱码的问题,通常是由于cmd或者powershell环境字符集和java源码字符集不匹配导致。
windows环境默认字符集未GBK,而vscode编辑的Java源码文件默认字符集是UTF-8。
要解决乱码问题,只要保证Java运行时、powershell(或者cmd)以及Java源码字符集保持一致就可以。
1、vscode启动java程序时,指定-Dfile.encoding参数为UTF-8
1、点击vscode左侧的“运行和调试”图标:2、选择启动项右侧的设置图标:
3、在右侧编辑区域打开launch.json文件,在启动项中编辑encoding项的值:
{
"configurations": [
{
"type": "java",
"name": "Spring Boot-EurekaServerApp<eureka>",
"request": "launch",
"cwd": "${workspaceFolder}",
"mainClass": "com.example.eureka.EurekaServerApp",
"projectName": "eureka",
"args": "",
"envFile": "${workspaceFolder}/.env",
"encoding": "UTF-8"
}
]
}
如果配置项中没有encoding配置项,则添加该配置项。
2、设置powershell环境的字符集为UTF-8
1、点击vscode左下角的设置图标,选择弹出菜单中的“设置”菜单项:2、点击settings.json编辑器右上角的“打开设置(json)”按钮,打开settings.json编辑器:
3、在settings.xml文件中添加配置项:
{
"terminal.integrated.profiles.windows": {
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": ["-NoExit", "/c", "chcp 65001"]
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe",
"args": ["-NoExit", "/c", "chcp 65001"]
],
"args": ["-NoExit", "/c", "chcp 65001"],
"icon": "terminal-cmd"
},
"Git Bash": {
"source": "Git Bash"
}
}
}
在powershell配置项中添加args配置项,其中-NoExit是启动后不自动关闭的意思,chcp 65001是powershell后,将运行环境的字符集修改为UTF-8,65001是windows环境UTF-8字符集的code page代码。