Fixed #1477 ffdec.exe unicode parameters

This commit is contained in:
Jindra Petřík
2023-03-25 09:30:02 +01:00
parent a516236ee1
commit b8d9fb82c0
3 changed files with 27 additions and 10 deletions

View File

@@ -107,6 +107,7 @@ import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.nio.charset.Charset;
import java.nio.file.FileSystems;
import java.nio.file.StandardWatchEventKinds;
@@ -2649,11 +2650,28 @@ public class Main {
}
}
/**
* To bypass wrong encoded unicode characters coming from EXE,
* it Launch5j encodes characters using URLEncoder.
* @param args
*/
private static void decodeLaunch5jArgs(String[] args) {
String encargs = System.getProperty("l5j.encargs");
if ("true".equals(encargs) || "1".equals(encargs)) {
for (int i = 0; i < args.length; ++i) {
try {
args[i] = URLDecoder.decode(args[i], "UTF-8");
} catch (Exception e) { }
}
}
}
/**
* @param args the command line arguments
* @throws IOException On error
*/
public static void main(String[] args) throws IOException {
decodeLaunch5jArgs(args);
setSessionLoaded(false);
clearTemp();
@@ -2686,7 +2704,7 @@ public class Main {
reloadLastSession();
}
});
} else {
} else {
checkLibraryVersion();
setSessionLoaded(true);
String[] filesToOpen = CommandLineArgumentParser.parseArguments(args);