What 코드페이지/문자셋을 사용해야를 해석하는 데이터에서 오는 MVS 시스템으로 자바니까?

StackOverflow https://stackoverflow.com/questions/818759

문제

나는 흥미로운 문제로(같은 경우가 종종에서 상호 작용과 함께 기존 시스템).나는 응용 프로그램(는 현재 실행 86 리눅하거나 윈도우 시스템)을 받을 수 있는 요청에서 다양한 시스템의,그들 중 하나가되는 MVS 시스템입니다.

내가 하려고 결정하는 코드페이지/charset 해야 나를 사용하여 해석하는 데이터를 요청에서 나오는 MVS 시스템입니다.

과거에는,내가 사용했던'cp500'(IBM500)을 해석하는 바이트 날짜를 위해 오는 z/OS 시스템,그러나 저는 두려움 때문에 MVS 의 비트는 기존 시스템,그리고 그 이후 IBM 듯이 그것을 변경의 마음을 지속적으로 존중하는 것을 인코딩을 사용하여(가 있어야 한 수십 EBCDIC 인코딩),는 cp500 가 올바르지 않을 수도 있습니다.

최고의 자원이 나서 찾을 문자 집합 Java: http://mindprod.com/jgloss/encoding .그러나 이 사이트에서 IBM 정보 센터,나는 할 수 없었을 얻을 명확한 대답합니다.

편집:추가에 대응하 Pax below:

이 있었다 눈부신에 구멍이 나의 질문에서 원산지의 요청이 데이터입니다.이 경우에는 원산지의 데이터를 통해 Websphere MQ 인터페이스입니다.Websphere MQ 는 시설에 대한 번역이 적합한 인코딩을,그러나 그가 읽기 데이터를 사용하여 MQMessage.readString(),이후 더 이상 사용되지 않습니다.내가 사용하는 것을 선호 이것은,그러나 내가 사용하고 독자적인 인터페이스는 프레임워크가 변경할 수 없습이 어떻게 메시지를 읽 MQQueue 는 읽기를 바이트를 직접 off 큐라 내가 왼쪽 손잡이 번역이 있습니다.

최종 답변:따라 원하는니다.로 올바른 문자 집합이었고 실제로 cp500(IBM500).그러나 나는 인상을 받는 결과가 달라질 수 있습니다.에 대한 몇 가지 팁 다른 사람과 동일한 문제점:

을 활용 Charset.availableCharsets();.이렇게 하면 지도의 지원되는 문자 집합니다.내가 반복을 통해 이러한 세트와 인쇄 내 데이터 바이트로 번역하는 캐릭터 설정합니다.는 동안 그것 없이 답변 내가 원하는(주지 않았기 때문에 데이터를 읽을 수 있으로 그것은 오에서),나는 그것을 상상하는 데 도움이 될 수 있습니다.

참조하시기 바랍니다: http://mindprod.com/jgloss/encoding 목록 지원하는 char 설정합니다.

마지막으로,하지만 나는 확인되지 않았지만,이를 사용하는지 확인하십시오른 JRE.나는 생각하고 있는 IBM 런타임 지원이 더 많은 EBCDIC 문자 집합은 다음 소프트웨어 또는 태양의 런타임입니다.

도움이 되었습니까?

해결책

"MVS 의 비트는 기존 시스템"?Ha!그것은 여전히 OS 에 대한 선택의 어플리케이션의 신뢰성은 번호를 하나의 관심사입니다.지금 당신의 질문:-)

그것은 전적으로 의존에서 무엇을 생성하는 데이터입니다.예를 들어,당신은 단지에서 파일을 다운로드 호스트,FTP 협상 처리할 수 있습니다.그러나 때문에 당신이 언급 Java,그것은 아마를 통해 연결하 DB2JDBC/z,와 JDBC 드라이버를 취급할 것입니다 그것을 아주 잘(많이 더 나은 당신이 사용하는 경우 IBM 의 자신의 JRE 보다는 오히려 태양 버전)입니다.

EBCDIC 자체를 호스트에서는 꽤 몇 가지 다른 인코딩을 그렇게 당신이 필요 적어도 우리가 알고 있는 데이터입니다.최근 버전의 DB2 문제가 없으로 저장하는 유니코드에 데이터베이스는 것을 완화하는 귀하의 모든 문제입니다.

첫 번째 작업을 찾아,데이터는 어디서 오기를 얻을 인코딩에서 당신의 SysProg(그렇지 않을 경우 자동으로 처리됩).

업데이트:

앤드류에 따라 추가 텍스트에있는 상태로 사용할 수 없습니다면 번역을 제공,당신을 설명서를 사용할 수있는 방법입니다.당신이해야의 원인을 식별하는 데이터를 얻을 CCSID 다.다음 번역에서는 유니코드(든 코드고 있는 페이지를 사용하지 않는 경우 유니코드)수 있습니다.

CCSID500 은 기본 코드 페이지에 대한 국제 EBCDIC(no 유로)그러나 기계에 사용되는 모든 행성이다.z/OS 변환 서비스가 어떻게 당신은 일반적으로의 전환에 메인프레임입니다.

은 iSeries 페이지에,그것은 목록의 거대한 숫자 Ccsid 과 그들의 문자 적용 가능한 메인프레임뿐만 아니라.

당신은 아마 그냥을 파악할 필요가 당신을 사용하여 CCSID500 또는 37(또 하나의 외국어 버전)및 매핑으로 유니코드 CCSID1208.귀하의 SysProg 될 것입니다 당신에게 말할 수 있는 하나입니다.만약 당신이 작업에 대한 우리 회사,그것은 500 또는 37 지만,IBM 의하여 팽창에 많은 노력을 지원하는 여러드 페이지입니다.나는 기뻐할 때 모든 메인프레임 소프트웨어 저장 및 유니코드를 사용하여 기본적으로,그것은 것을 훨씬 더 쉽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top