我怀疑造成差异的根本原因可能与操作系统、JDK版本、是否在IDE(如VSCode的Calva、Emacs的CIDER)内部或终端运行REPL,以及JVM使用的环境变量设置有关,这些变量用于确定字符集,如macOS和Linux上的LC、LANG、TERM等。
至少对于macOS 10.14.6的内置终端、AdoptOpenJDK 15.0.1和在该终端中使用clojure
版本1.10.1.763启动的REPL,以及以下环境变量值,我得到了预期的结果
$ env | egrep '(LC|LANG|TERM)' TERM_PROGRAM=Apple_Terminal TERM=xterm-256color TERM_PROGRAM_VERSION=421.2 TERM_SESSION_ID=51C20403-498A-4E4E-ABFE-B59367276B5D LANG=en_US.UTF-8