解决VSCODE中java开发,终端乱码(2023年3月)

解决VSCODE中java开发,终端乱码

一、环境

  • 操作系统:windows10

  • powershell版本:PowerShell 7.3.3

  • VSCODE版本信息:

    版本: 1.76.2 (user setup)
    提交: ee2b180d582a7f601fa6ecfdad8d9fd269ab1884
    日期: 2023-03-14T17:55:54.936Z
    Electron: 19.1.11
    Chromium: 102.0.5005.196
    Node.js: 16.14.2
    V8: 10.2.154.26-electron.0
    OS: Windows_NT x64 10.0.19045
    沙盒化: Yes

二、错误表现

  1. springboot2.3.4 使用JDK1.8编译和运行的时候,终端出现中文乱码
    在这里插入图片描述

  2. springboot3.x 使用JDK11编译运行的时候中文正常显示,不会出现乱码。

  3. 为什么会因为JDK版本不同而出现不同的显示结果,原因不明。

三、解决方案

  1. 原因简单分析。
    出现这个现象的原因是因为编码方式的不同。(VScode的默认编码方式为UTF-8,输出到终端的字符都是UTF-8的,而中国地区下PowerShell的编码方式GBK)。如果VScode终端那里调用的是PowerShell,两者编码方式的不同的就导致了中文乱码的问题。所以我们解决乱码的方式,就是将两者的编码方式统一就行,要么将两者都统一为UTF-8,要么就统一为GBK。

  2. 临时解决,这里我们把powershell的字符集设置成UTF-8。在VSCODE打开的终端界面中输入下面的代码。

    $OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8
    

    上面这种方式只能生效一次,也就是每次重新打开终端都需要重新执行上面的代码。

  3. 使用powershell的配置文件永久解决。

    一、生成“Microsoft.PowerShell_profile.ps1”配置文件。

    1. 生成一个PowerShell的配置文件。

      • 以管理员身份运行PoweShell,运行New-Item $PROFILE -ItemType File -Force。
        在这里插入图片描述
      • 打开“我的文档”,在文件夹“PowerShell”或者“WindowsPowerShell”会生成一个名为“Microsoft.PowerShell_profile.ps1”的文件。该文件中暂时是空的。添加如下内容:
        OutputEncoding = [console]::InputEncoding = [console]::OutputEncoding = New-Object System.Text.UTF8Encoding
    2. 复制修改后的“Microsoft.PowerShell_profile.ps1”到合适的位置。

    二、在vscode中配置。

    • 打开文件(File)​ -> 首选项(Preferences)​ -> 设置(Settings)​。搜索“terminal.integrated.default profile”,修改windows下面的选项为“PowerShell”。
      在这里插入图片描述

    • 打开“setting.json”文件,修改其中的配置。添加如下配置项:

          "terminal.integrated.profiles.windows": {
              "PowerShell": {
                  "source": "PowerShell",
                  "icon": "terminal-powershell",
                  "args": [
                      "-noexit",
                      "-file",
                      "D:\\Program Files\\vscode\\powershell\\Microsoft.PowerShell_profile.ps1"
                   ]
              },
              "Command Prompt": {
                  "path": [
                      "${env:windir}\\Sysnative\\cmd.exe",
                      "${env:windir}\\System32\\cmd.exe"
                  ],
                  "args": [],
                  "icon": "terminal-cmd"
              },
              "Git Bash": {
                  "source": "Git Bash"
              }
          }
      

      在这里插入图片描述

四、解决后的效果

* ​[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Nfo8Cgtb-1679585205875)(assets/image-20230323231614-an335un.png)]​

五、参考

  • https://www.ewbang.com/community/article/details/961545381.html

  • https://code.visualstudio.com/docs/terminal/profiles

在这里插入图片描述

六、坑-在我环境中无效的方法

VS Code解决终端中文乱码

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
VSCode运行Java代码时出现乱码的问题可以通过一些方法来解决。一个解决方案是在终端设置编码格式为UTF-8。具体步骤如下: 1. 在VSCode打开终端。 2. 输入以下命令来设置终端的编码格式为UTF-8: ``` chcp 65001 ``` 3. 确保你的Java源代码文件的编码格式也是UTF-8。可以在VSCode的底部状态栏找到当前文件的编码格式,点击后选择"UTF-8"。 4. 编译和运行Java程序时,确保在终端使用UTF-8编码。你可以使用以下命令来编译和运行Java程序: ``` cd $dir && javac -encoding utf-8 $fileName && java $fileNameWithoutExt ``` 这样设置后,你就可以在VSCode终端正常显示文字符了。如果还是遇到问题,可以尝试查看终端输出的编码格式是否正确,或者检查Java源代码是否包含正确的文字符编码。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [vscode运行java环境下出先输出乱码解决方案](https://blog.csdn.net/PauTORESS/article/details/129765440)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [永久解决VSCode终端乱码问题](https://download.csdn.net/download/weixin_38742421/12924390)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值