【问题标题】:Representing bytes in QShell AS/400 (iSeries)在 QShell AS/400 (iSeries) 中表示字节
【发布时间】:2020-09-16 19:38:30
【问题描述】:

我在使用我通常使用的 unix 工具时遇到问题,因为我无法在 QSHell 中使用某些字符。例如,在 linux 中,我可以像这样替换文件中的特定字节:

sed 's/l/\x81/' a.txt

在这种情况下,我将用字节 x81 替换“l”。但是,在 Qshell 中,我不能使用 \x ,例如,

printf '\x81'
Öx81   

正如我们所见,\x81 不打印为“a”,即 EBCDIC 中的 \x81,即 iSeries 的编码。它甚至不尝试打印一个字节,它正在打印一个长度为 4 的字符串...

我想要做的只是简单地使用 sed 来替换回车,通过回车和换行之类的东西。我意识到字符 \ 不存在于 EBCDIC 中,{} 也不存在。因此,还有一些 unix 命令使用在 QShell 中显示错误的字符。请帮忙,我找不到让事情在线工作的方法,所以我没有编写任何脚本。

为了使问题不模棱两可,我特别需要一种在 Qshell 中使用其十六进制表示来打印字符的方法。

我正在使用 PCOMM tn5250 连接到 AS/400。

【问题讨论】:

    标签: ibm-midrange qshell


    【解决方案1】:

    你需要像这样逃避逃生:

    printf \\x81

    a

    【讨论】:

    • 我试过了,还是不行,printf "\\x81" ÖÖx81$ 你是不是在tn5250上配置了一些东西或者改变了qshell的编码或者类似的东西?谢谢
    • 我用ssh访问系统,然后启动qsh。您可能需要配置终端模拟器的代码页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-03
    • 2011-10-23
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多