-1

当我尝试编译用 Java 语言制作的源代码时,我的计算机遇到了一个大问题,因此非常沮丧:

String 类型的变量很难被编译器读取和解释,并且会打印正方形而不是特殊字符。

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("Name:");
        String name = sc.nextLine();
        System.out.println(name);
    }   
}

结果:

在此处输入图像描述

我的尝试是:

  • 更改位于文件资源管理器中的 IDE 文件夹中的“netbeans.conf”配置文件

  • 安装多个版本的 NetBeans IDE,查看是否所有版本都出现此问题。是的,它出现在所有版本中,我已经尝试了所有程序的配置选项

  • 在我的计算机上卸载并安装 JDK 版本,并确保我还在我的计算机上安装了 JRE,以查看安装所有这些程序后问题是否已解决。什么都没有解决,也没有成功。问题继续在IDE中编译这个小代码。

有了这个问题,我不能:

  • 用Java语言创建带有数据库(MySQL + JDBC)的应用程序,因为PreparedStatement对象的参数由于这个问题无法识别String的特殊字符

在此处输入图像描述

  • 通常创建 Java 应用程序,因为如果出现这个问题,在我看来,这在我的计算机上似乎是一个不可能解决的解决方案,我将如何继续创建具有这种特殊字符识别错误的系统?

  • 在我的计算机上编译源代码,因为编译器无法识别 ç、á、ã、â、í 等特殊字符,并且不会在输出中显示它们,而是出现如上图所示的正方形。

是留下了一些配置,还是我无法开发解决此问题的解决方案?如果是这样,解决这个问题的最佳解释是什么?是否有必要联系技术人员以获取更多信息?

4

1 回答 1

0

我很感激@Tigris 帮助我解决了这个问题,实际上当我去检查时,我最终在一杯水中制造了一场风暴。评论中的@Tigris 解决方案给了我一个想法,当我用他最初给我的答案分析我给出的错误时,这个想法变得立竿见影。

问题很简单,基本上是 IDE 终端中的字符编码错误,通过我在 CMD 中键入的行解决了:

chcp 1252

此解决方案与评论末尾的链接相关,您注意到该帖子的解释表明该问题可以通过设置系统属性的简单代码行来解决。

但是在解决了这个问题并分析了@Tigris 在评论中分享的链接之后,我在想:如果我的问题没有解决并且仍然坚持以不可读的方式显示特殊字符,那么我将不得不插入已回答的行在我所有的项目上发布代码?

这就是为什么在设备出厂甚至维修时检查设备的字符串总是好的原因,因为根据这种特殊字符的显示问题可能会改变用户正在工作的数据库的情况,以防万一开发人员甚至为客户端构建 API 或 Web 服务,而不注意这些文本压力的细节,这可能会在计算机上安装的任何 IDE 中完成项目时造成不便和头痛。

于 2020-12-14T21:28:18.197 回答