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 に答える