0

こんにちは私は以下のようにScalaからGroovyスクリプトにパス文字列を渡しますが、文字列に2バイトの文字が含まれていると、フォーマットが文字化けします。文字列をGroovyスクリプトに適切に渡すにはどうすればよいですか?

var gse = new GroovyScriptEngine()
var scriptClass = gse.loadScriptByName("script.groovy") 
var i = scriptClass.newInstance().asInstanceOf[GroovyObject]
i.setProperty("DIR_HERE", new File(".").getAbsolutePath())
 // when the path contains 2 bytes code like "c:/あああああ/bleh", 
 // the passed string will be garbled and will be like "c:/????????????/bleh"
4

1 に答える 1

1

私が次のように書く場合script.groovy

println DIR_HERE

そして、次のような新しいファイルrun.groovy

def gse = new GroovyScriptEngine( '.' )
def scriptClass = gse.loadScriptByName("script.groovy") 
def i = scriptClass.newInstance()
i.setProperty("DIR_HERE", 'c:/あああああ/bleh' )
i.run()

それから私が走るとき:

groovy run.groovy

コマンドラインから、次のように出力します。

c:/あああああ/bleh
于 2012-04-11T11:52:29.017 に答える