相关疑难解决方法(0)

将命令行unicode参数传递给Java代码

我必须将日语命令行参数传递给Java main方法.如果我在命令行窗口中键入Unicode字符,它会显示"?????" 这没关系,但传递给java程序的值也是'?????'.如何获取命令窗口传递的参数的正确值?下面是示例程序,它将命令行参数提供的值写入文件.

public static void main(String[] args) {
        String input = args[0];
        try {
            String filePath = "C:/Temp/abc.txt";
            File file = new File(filePath);
            OutputStream out = new FileOutputStream(file);
            byte buf[] = new byte[1024];
            int len;
            InputStream is = new ByteArrayInputStream(input.getBytes());
            while ((len = is.read(buf)) > 0) {
                out.write(buf, 0, len);
            }
            out.close();
            is.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)

java unicode command-line-arguments

14
推荐指数
3
解决办法
8316
查看次数

Java,Unicode,UTF-8和Windows命令提示符

我有一个jar文件应该读取UTF-8编码的文件 - 我在Windows下的文本编辑器中写入 - 并将字符显示在屏幕上.在OS X和Linux下,它可以完美运行.我在Windows下工作时遇到了一些麻烦...我已经定义了一个像这样的读者和作者:

FileInputStream file = new FileInputStream(args[0]);
InputStreamReader reader = new InputStreamReader(file, "UTF8");

PrintStream writer = new PrintStream(System.out, true, "UTF8");
Run Code Online (Sandbox Code Playgroud)

我也按顺序将命令提示字体更改为Lucida Console和UTF-8的字符编码chcp 65001.

现在,当我跑步时java -jar Read.jar file.txt,提示挥霍了.

áéí
ñóú
[]óú
[]
Run Code Online (Sandbox Code Playgroud)

但是,如果我运行type file.txt,则提示正确显示文件的内容.

áéí
ñóú
Run Code Online (Sandbox Code Playgroud)

我尝试使用和不使用BOM保存我的文件,但这没有什么区别.(UTF-8甚至不需要BOM,因为它缺乏字节序,对吗?)我尝试过编译javac -encoding utf8 *.java,但同样的事情发生了.

我现在没有想法了.有人在乎帮忙吗?

java windows unicode utf-8 command-prompt

13
推荐指数
1
解决办法
4030
查看次数