我有一个从CLI获取用户输入的Groovy脚本。CLI支持西里尔字符,编码和字符集均为UTF-8。然而,当Groovy读取带有西里尔字符的输入时,它看到的只有“?”。此外,Groovy不能使用给定的参数创建目录或文件。有没有人知道如何迫使Groovy接受西里尔字母?谢谢。
发布于 2013-03-14 22:58:48
确保您使用的读卡器与您的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
е, 1077https://stackoverflow.com/questions/15412143
复制相似问题