COBOL의 PACK 타입 관련 질문입니다.
희미한눈물
2023.04.01
안녕하세요.
프로젝트를 하는데 기존 COBOL시스템을 JAVA로 변경하는 작업을 하고 있습니다.
디비는 DB2입니다.
로그를 쌓아야하는데 기존의방식대로 로그를 쌓아달라고 하는데DECIMAL일경우 디비의 값을 그대로 찍어줘야 합니다.
시스템은 IBM의 MAINFRAME의 COBOL로 되어있습니다.
알아보니DECIMAL은 PACK라는 타입으로 바꿔주면 되더라구요.
PACK라는 타입은 관련 JAR파일(ZDECIMAL_3.1.JAR)을 구해서 해결하였습니다.
문제는 PACK타입으로 변환하면 BYTE[] 형태로리턴하는데byte[] 를 new String()으로 해서 변환을 하면 데이터 값이 잘려나옵니다.
HEX코드로 보면 1인경우001C로 나와야 하는데 값이 조금씩 잘리면서 정확한 값이 안나옵니다. byte[]값을 string으로 변환할때 손실없이 출력되게 하고 싶습니다.
예를들면 pack타입으로 변환하면 눈에는 인식이안되는 ?.,이런식으로 출력됩니다. 이걸 hex코드로 보면 112C(숫자 112)이런식으로 보입니다.
아시는 분있으시면 알려주세요..^^
ps. 숫자중 0~7까지는 정확히 나오는거 같은데 8,9가 문제인것 같습니다.
-
무크
흠... 비몽사몽이라 글이 잘 안들어오지만--;;;
제 기억에 메인프레임은 ASCII코드가 아니라 EBCDIC코드였던걸로 기억됩니다만...
혹시 코드셋을 잘 못 맞추신게 아닐까 싶네요...