0

我有一个从 CLI 获取用户输入的 Groovy 脚本。CLI 支持西里尔字符,并且编码和字符集都是 UTF-8。然而,当 Groovy 读取带有西里尔字符的输入时,它看到的只是“???????”。此外,Groovy 无法使用给定参数创建目录或文件。有人对强迫 Groovy 接受西里尔字符有任何想法吗?谢谢。

4

1 回答 1

3

确保您使用的阅读器使用与您的 CLI 相同的编码。如果是,则显示字符可能会出现问题。您可以验证 groovy 得到的 Unicode 代码点,如下所示:

// test.groovy    
def input = System.in.withReader('UTF-8') { it.readLine() }

input.eachWithIndex { ch, index ->
    println "$ch, ${Character.codePointAt(input, index)}"
}

从 CLI 运行:

$ echo $LANG
en_US.UTF-8
$ echo Здра́вствуйте | groovy test.groovy
З, 1047
д, 1076
р, 1088
а, 1072
́, 769
в, 1074
с, 1089
т, 1090
в, 1074
у, 1091
й, 1081
т, 1090
е, 1077
于 2013-03-14T14:58:47.967 回答