2012-04-11 39 views
0

こんにちはパス文字列を以下のようにScalaからGroovy Scriptに渡していますが、文字列に2バイト文字が含まれていると、書式設定が文字化けします。どのように文字列を正しくスクリプトに渡すのですか?Groovy Script Engineで文字化けすることなく2バイト文字列を渡すには?

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" 
+0

「scriptInstanceOf [GroovyObject]」とは何でしょうか? –

+0

申し訳ありません。私はコードに一行を入れるのを忘れていました。編集されました。渡されたパスに2バイトのコードが含まれていないと、スクリプト自体は正常に動作します – Elonoa

+0

ああ、これはあなたが埋め込んでいるスカラーですか?あなたが言ったようにJavaではない?あなたが質問にスカラの言及をしなかったので、スカラータグは36分前に編集されました。それを戻す価値があるかもしれない? –

答えて

1

私のようにscript.groovyを書く場合:その後、私は実行時に

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

:として

println DIR_HERE 

し、新しいファイルrun.groovy

groovy run.groovy 

コマンドからライン、

c:/あああああ/bleh 
+0

ありがとうございます。これを読んだ後、私はいくつかのテストをしたし、それは本当に面白いエラーではなかった。私の愚かなことだけど、それはどうにか間違っていたことを追跡するのに役立った.. – Elonoa

関連する問題