编码|Java on Visual Studio Code的更新 – 2021年11月( 二 )

publicclassHello{publicstaticvoidmain( String[] args) {System. out.println( "你好!");} }

C:\Test>chcp 65001 C:\Test>java -cp ./Exercises Hello ??! C:\Test>java -Dfile.encoding=UTF-8 -cp ./Exercises Hello 你好!
  • 程序需要从stdin读取Unicode字符 , 并将Unicode字符打印到stdout
import java.util.Scanner; publicclassHello{ publicstaticvoidmain( String[] args) { Scanner scanner = newScanner(System. in); System. out.println(scanner.nextLine); }}
C:\Test>chcp65001
C:\Test>java -Dfile.encoding=UTF-8 -cp ./Exercises Hello 你好 ??我们的发现与应对此类问题的建议
之前 , 为了缓解编码问题 , 我们在Java Debugger端添加了一些解决方法去强制在我们的工具链中使用UTF-8 。 例如 , 添加一个launcher.bat强制终端的代码页为65001 , 并将默认的“file.encoding”属性设置为“UTF-8” 。 但事实证明 , 它们并没有系统地解决编码问题 , 并且还引入了一些额外的副作用(参见#756, microsoft/vscode-java-debug#622, microsoft/vscode-java-debug#646) 。
在对该问题进行更多调查后 , 我们发现我们添加的解决方法似乎没有必要 。 用户只需要将windows系统区域设置为他们想要的语言 , 然后JVM和终端将自动更改为与您的系统区域设置兼容的编码 。 官方Java文档 (https://www.java.com/en/download/help/locale.html)也建议这样做 。
以下屏幕截图显示了如何在Windows中更改系统区域设置 。 例如 , 如果您想使用终端在Java程序中输入汉字 , 您可以将Windows系统区域设置为中文 。 默认的Java字符集将是”GBK”并且cmd代码页将是”936″, 它将很好地支持中文字符 。

编码|Java on Visual Studio Code的更新 – 2021年11月
文章图片

这是有关如何处理编码问题的详细文档 。
  • #756: https://github.com/microsoft/vscode-java-pack/issues/756
  • microsoft/vscode-java-debug#622: https://github.com/microsoft/vscode-java-debug/issues/622
  • microsoft/vscode-java-debug#646: https://github.com/microsoft/vscode-java-debug/issues/646
  • 详细文档: https://github.com/microsoft/vscode-java-debug/blob/main/Troubleshooting_encoding.md
项目管理 – 跟”.project”
等元数据文件说再见
如果您正在使用Java扩展包进行Java开发 , 我们有个好消息要告诉您 – 当您导入新的 Java 项目时 , Visual Studio Code不再在项目路径中生成那些隐藏的“.project”元数据文件!这是一个已经存在三年多的问题 , 而我们在11月的版本中修复了它 。 如果您有兴趣了解我们是如何解决的 , 请访问https://devblogs.microsoft.com/java/say-goodbye-to-project-files-in-1-1-0/

推荐阅读