Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中的z/OS USS上解压缩后,将sh脚本转换为正确代码页的命令是什么?_Bash_Jar_Character Encoding_Zip_Zos - Fatal编程技术网

在bash中的z/OS USS上解压缩后,将sh脚本转换为正确代码页的命令是什么?

在bash中的z/OS USS上解压缩后,将sh脚本转换为正确代码页的命令是什么?,bash,jar,character-encoding,zip,zos,Bash,Jar,Character Encoding,Zip,Zos,我的问题是bash中解压的文件的字符集不是UTF8。以下是重现问题的步骤: 将二进制zip文件复制到USS(ftp-bin-put myfile2unzip.zip) 使用jar命令解压:jar-xvf myfile2unzip.zip cat myscript.sh 输出: {Za???a???{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}a???@ 我所尝试的: iconv -f UTF8 -t IBM1047 myscript.sh > m

我的问题是bash中解压的文件的字符集不是UTF8。以下是重现问题的步骤:

  • 将二进制zip文件复制到USS(ftp-bin-put myfile2unzip.zip)
  • 使用jar命令解压:jar-xvf myfile2unzip.zip
  • cat myscript.sh
  • 输出:

    {Za???a???{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{}}a???@

    我所尝试的:

    iconv -f UTF8 -t IBM1047 myscript.sh > myscript.uss
    

    这不起作用,输出文件具有错误的字符集。

    bash中的jar命令正在解压缩字符集中的文件:ISO8859-1 sh中的jar命令将文件解压缩为UTF8

    因此,bash中的正确命令是:
    iconv-f ISO8859-1-t UTF8 myscript.sh>myscript.uss

    我不确定我是否理解您想要实现的目标。在第一篇文章中,您将转换为EBCDIC编码页面(IBM 1047)。在这篇文章中,您将ISO8859-1转换为UTF8,两者都与ASCII有关,而不是与EBCDIC有关。您为什么认为“jar”“在bash shell中运行与在sh shell中运行时的工作方式不同?好吧,jar的提取比例为1:1,即根本没有翻译。您的“iconv”s@phunsoft的工作方式不同。我们开始在sh中使用USS。当您在/bin/sh中解压时,文件将转换为一个字符集(IBM1047)。因此,我们认为在bash中执行相同的命令应该是相同的。然而,在USS中,bash的行为有点不同,因为它将文件提取到字符集ISO8859-1中。因为我们需要在bash中一致地工作,所以我们需要了解解压文件的正确方法是什么,以便结果可以是可用的或可用的因此,我们可以提供一个命令使它们可用。因此需要了解字符集。