如何使用固定的编码来运行jar包

发布时间 2023-08-28 18:52:44作者: 信铁寒胜

在使用java -jar 命令时 指定编码

java -Dfile.encoding=utf-8 -jar xxx.jar

  注意:在Windows系统上执行命令时,只能用cmd,不能用PowerShell,否则报错!!!

XTHS:

为什么要这么做的?主要应该是在服务器是采用GBK编码模式的,在我本地是UTF-8的是没有问题的,但是在服务器就有问题了。

String encodedAuth = java.util.Base64.getEncoder().encodeToString(auth.getBytes(StandardCharsets.UTF_8));
        connection.setRequestProperty("Authorization", "Basic " + encodedAuth);
        Writer writer = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
//        String xmlRequest = getXML("[{vorna:\"2305226012\"},{vorna:\"2305226005\"}]");
        
        
        String xmlRequest = getXML(userId);
        
        logger.info("xmlRequest="+xmlRequest);
        
        writer.write(xmlRequest);
        writer.flush();
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String response = "";
        String line = "";
        while ((line = reader.readLine()) != null) {
            response += line + "\n";
        }

  主要调用上面的SAP接口时,如果是GBK编码运行jar包的话,总是出现乱码,

无论我怎么转换编码,都会出现这个错误。

只有用UTF-8 运行jar包的时候,才没有问题。

 

参考文章:【Java】java -jar 指定编码_jar包启动指定编码_ooooooooooooooxiaosu的博客-CSDN博客