QEBCDIC-感叹号的翻译与预期不符

问题描述 投票:0回答:1

我有一个在IBM i盒上运行的服务器端套接字程序。该服务器程序读取以Java编写的,来自Linux客户端的ASCII数据。在使用传入数据之前,服务器程序使用QEBCDIC表调用QDCXLATE程序,以将传入ASCII数据转换为EBCDIC。据我所知,除!以外,其他所有内容均已正确翻译。字符,在ASCII中为x'21'。由于某种原因,QEBCDIC正在将x'21'转换为x'4F'。我在网上查找了EBCDIC表,看到了!字符的十六进制值应为5A。知道为什么这个IBM提供的表将其转换为x'4F'吗?我应该更改此转换表以将x'21'转换为x'5A'还是应该对其进行复制并更改复制版本并更改程序以使用它来执行转换?

ibm-midrange
1个回答
0
投票

QDCXLATE的文档建议不要使用该API。他们建议改为使用iconv。我尝试使用工作表CCEBID设置为37的表QEBCDIC调用QDCXLATE,我看到了!字符已翻译为|字符。当我以我的工作CCSID设置为500运行程序时,!字符已正确翻译。然后,我尝试了QTCPEBC表,并且!使用CCSID 37正确转换了字符,但没有使用CCSID 500正确转换。

因此,看起来QDCXLATE没有考虑作业CCSID。

您从哪种语言调用QDCXLATE?也许有一种更简单的方法可以将ASCII转换为EBCDIC。

© www.soinside.com 2019 - 2024. All rights reserved.