JVM/AWT 在不同平台上显示 Unicode 字符的方式不同

问题描述 投票:0回答:1

我一直在为类似 Lisp 的语言开发一个小型编程环境。该环境可以在 JVM 或 Android 上运行,并且 JVM 变体可以呈现到 Swing 或终端(使用 Lanterna 库)

我的编辑器本身是用 Kawa Scheme 编写的,我计划在某个时候开始使用它来编辑自身 - 但到目前为止,我主要是通过 Emacs 进行编辑。

我还可以将 GRASP 表达式渲染为字符串,这让我可以以更直观的方式编写单元测试。以下是此类测试的两个示例,如 Emacs 中所示:

当我在 GRASP 的终端版本中打开它们时,它们看起来相当不错:

当我在 WSL 下的 GRASP 图形版本中打开它们时,看起来字体缺少一些字形(我使用的是 Fira Mono):

但是当我在本机 Windows 下打开 GRASP 的图形版本时,似乎 unicode 字符完全显示不出来:

所以问题如下:

  1. 如何强制 Windows 上的 JVM 选择正确的编码?
  2. 谁能推荐一种好看的等宽字体,支持多种字符,包括方框图字符?
unicode character-encoding jvm awt
1个回答
0
投票

阅读JavaFX中的Mojibake(在Netbeans中工作正常)我发现为了使程序在Windows上正常运行,需要将

-Dfile.encoding=UTF-8
参数传递给
java
命令(这为我解决了问题)

© www.soinside.com 2019 - 2024. All rights reserved.