(国际音标) 国际音标 该字符在Mac中显示正常,但在Windows中显示不正常



我正在使用一个显示 json 文件中的 IPA 字符的应用程序。
我正在使用带有Netbeans的IMac,并且该应用程序运行良好,但是如果我编译 该项目并在Windows计算机中执行它,它显示不同的字符 甚至没有国际音标字符。
我已经尝试更改不同的字体系列,结果是相同的。

public class JavaFXApplicationJsonFile extends Application {
@Override
public void start(Stage primaryStage) {
Button btn = new Button();
btn.setText("Print JsonFile");
btn.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent event) {
JSONParser jsonParser = new JSONParser();
String jsonFileString = "src/javafxapplicationjsonfile/jsonFile.json";

try {
FileReader fileReader = new FileReader(jsonFileString);
Object obj = jsonParser.parse(fileReader);
JSONObject jsonObject = (JSONObject) obj;
JSONArray jsonArray = (JSONArray) jsonObject.get("palabras");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject Palabras = (JSONObject) jsonArray.get(i);
System.out.println(Palabras.get("IPA").toString());
Alert alert = new Alert(Alert.AlertType.INFORMATION, Palabras.get("IPA").toString(), ButtonType.OK);
alert.show();
}

} catch (FileNotFoundException ex) {
Logger.getLogger(JavaFXApplicationJsonFile.class.getName()).log(Level.SEVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(JavaFXApplicationJsonFile.class.getName()).log(Level.SEVERE, null, ex);
} catch (ParseException ex) {
Logger.getLogger(JavaFXApplicationJsonFile.class.getName()).log(Level.SEVERE, null, ex);
}
}
});

StackPane root = new StackPane();
root.getChildren().add(btn);
Scene scene = new Scene(root, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}
}

FileReader 类将使用操作系统的默认字符集。

请参阅 InputStreamReader,尤其是采用字符集或字符集名称的构造函数。

您可能希望使用 UTF-8(Mac OS 上的默认字符集(,因为您说它在 Mac OS 上可以正常工作。

当您在Windows上运行它时,默认字符集是Windows-1252

最新更新