/ / Как да преминем 2 байта низ без да бъдете повредени в Groovy Script Engine? - скала, groovy, кодиране на знаци, пътека, кодиране

Как да преминем 2 байта низ без да бъдете изкривени в Groovy Script Engine? - скала, groovy, кодиране на знаци, пътека, кодиране

Здравейте, аз преминавам стринг пътека към Groovy Script от Scala, както е показано по-долу, но когато низът съдържа 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"

Отговори:

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