impl xs filepathtouri gneedescaping gafterescaping1 gafterescaping2 ghexchs gneedescaping gafterescaping1 ghexchs gafterescaping2 ghexchs gneedescaping gafterescaping1 gafterescaping2 escchs len escchs.length ch len ch escchs gneedescaping ch gafterescaping1 ch ghexchs ch gafterescaping2 ch ghexchs ch filepathtouri filepath2uri path path separator java.io.file.separatorchar path path.replace separator len path.length ch stringbuffer buffer stringbuffer len buffer.append len path.charat ch character.touppercase path.charat ch ch buffer.append len ch path.charat ch gneedescaping ch buffer.append buffer.append gafterescaping1 ch buffer.append gafterescaping2 ch buffer.append ch len bytes bytes path.substring getbytes java.io.unsupportedencodingexception path len bytes.length len bytes ch buffer.append buffer.append ghexchs ch buffer.append ghexchs ch gneedescaping buffer.append buffer.append gafterescaping1 buffer.append gafterescaping2 buffer.append buffer.tostring