java - 从 Windows 命令提示符将 unicode 字符串传递给 java

标签 java unicode command-line command-line-arguments

我需要从 Windows 命令行将文件路径传递给 main 方法。

c:\scanner> java -jar scanner.jar path-to-file-with-unicode-characters

文件路径包含 unicode 字符,这些字符在传递给 java main 后将被删除/替换

最佳答案

问题出在命令行及其编码上。

解决方案可能是将文件路径存储为单独的小文本文件。

在 Linux 下,惯例是使用 @ 前缀:

public static void main(String[] args) {
    for (int i = 0; i < args.length; ++i) {
        if (args[i].startsWith("@")) {
            Path path = Paths.get(args[i].substring(1));
            args[i] = new String(Files.readAllBytes(path), StandardCharsets.UTF_8).trim();
        }
    }
    RealClass.main(args);
}

关于java - 从 Windows 命令提示符将 unicode 字符串传递给 java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51425394/

相关文章:

unicode - 是否有用于一元数字的 Unicode 符号(|、||、...、|̶|̶|̶|̶)?

java - android Gradle同步错误(匹配版本)

java - JUnit类别-如何避免代码重复

java - 在 Java 中如何读取文本文件并指定它是什么类型的对象?

python - 为什么在 python -c 中插入 unicode 字符抛出异常

java - guice:在命令行运行时注入(inject)/绑定(bind)

java - 二维平面上的重叠多边形

php utf8_encode - 字符前面加上\u

python - 在 python 的子进程中使用撇号

python - 如何在 Python 中处理 YAML 流