gpt4 book ai didi

java - 使用 NetBeans IDE 开发的 Java 应用程序中不打印阿拉伯字符

转载 作者:行者123 更新时间:2023-11-30 02:19:55 28 4
gpt4 key购买 nike

我使用 NetBeans IDE 在 JAVA 中创建了一个桌面应用程序。应用程序可以将数据写入文件。我在应用程序中使用阿拉伯字符,当我直接从 NetBeans 运行应用程序时,我可以将阿拉伯字符写入文件,没有任何问题。但是当我在 NetBeans 之外的 dist 文件夹中运行 .jar 文件时,它显示“????”而不是阿拉伯字体。如果有人能帮助我找到解决方案,我将不胜感激。 The screen shot is given below

这是我的自定义记录器类:

public class MLogger {

private static final Logger log = Logger.getLogger( MLogger.class.getName() );
private static FileHandler fh;
private static SimpleFormatter sf;

public static synchronized void writeLogToFile(String message){
try {
fh = new FileHandler("D://wblogs/wblog.txt", true);
// true forces append mode
sf= new SimpleFormatter();
fh.setFormatter(sf);
log.addHandler(fh);



log.log( Level.INFO,message);


} catch (IOException ex) {
Logger.getLogger(MLogger.class.getName()).log(Level.SEVERE, null, ex);
} catch (SecurityException ex) {
Logger.getLogger(MLogger.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

我使用的方法是:

MLogger.writeLogToFile("محمد اقبال");

最佳答案

在 NetBeans 中运行和从命令行运行之间使用不同的编码。解决您的问题的快速方法是添加

fh.setEncoding("UTF-8"); // and catch UnsupportedEncodingException

您显示的代码。

解决您的问题的更好方法是:

  1. 不要使用java.util.logging,它很糟糕,而且没有人使用它
  2. 不要为日志记录创建“自定义代码”。你不需要它。如果您切换到像 SLF4J/Logback 这样的现代记录器,这一点尤其正确。

关于java - 使用 NetBeans IDE 开发的 Java 应用程序中不打印阿拉伯字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47172354/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com