Konwertuj ciąg z EBCDIC na Unicode / UTF8

Jestem w stanie wysyłać wiadomości zJava doWebsphere MQ naAS400. Jeśli wysyłam wiadomości zWinXP, nie ma różnicy, czy używam dowolnego dostępnegoLocale, w tym pełna lokalizacja języka; ani nie ma problemu z angielskimLocale. Ważne dla poprawnego kodowania jest tylko ta linia kodu:

msgId.characterSet = 1208;

Niestety, nie jest prawidłowy. Istnieją różnice w przypadku, z którego chcę odebrać wiadomośćMQ Queue.

W przypadku, gdy otrzymam wiadomość odMQ Queue z systemu operacyjnego Windows (angielski bez żadnego pakietu językowego), mogę odebrać wiadomośćMQ Queue wString Formularz.

W przypadku, gdy system operacyjny Windows jest w pełni zlokalizowany w niektórych pakietach językowych, otrzymuję wyjątek

Exception occured while to message buffer :
    java.io.UnsupportedEncodingException: Cp870 

z kodu (usunięto balast z try - catch - finally block)

try {
    Class.forName("com.ibm.mq.MQEnvironment");
    MQEnvironment.hostname = hostname;
    MQEnvironment.port = port1;
    MQEnvironment.channel = channel;
    MQEnvironment.userID = userID;
    MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
    try {
        qmgr1 = new MQQueueManager(qmanager);
        MQGetMessageOptions gmo = new MQGetMessageOptions();
        int openOptions2 = MQC.MQOO_INPUT_SHARED;
        gmo.options = MQC.MQGMO_NO_SYNCPOINT; //Set no sync point
        gmo.options = MQC.MQGMO_CONVERT; //Handles ASCII/EBCDIC
        gmo.options = MQC.MQGMO_WAIT; //Wait until message arrives
        gmo.waitInterval = 3000;
        getq = qmgr1.accessQueue(responseQueue, openOptions2);
        while (true) {
            try {
                responseFromQUEUE = "";
                MQMessage msgId = new MQMessage();
                //putmsg.characterSet = 437;// Set code page to ASCII
                //putmsg.characterSet = 1200;// Set code page to UNICODE
                msgId.characterSet = 1208;
                getq.get(msgId, gmo);
                String str = msgId.readLine();
                //responseFromQUEUE = CpConv.tf870to1250(msgId.readLine());
                //own EncodePage doesn't works too
                if (responseFromQUEUE.length() == 0) {
                    break;
                }
            } catch (MQException mqx) {
                if (mqx.reasonCode == EMPTY_QUEUE) {
                } else {
                }
            }
        }
    } catch (MQException mqx) {
    } finally {
    }
} catch (IOException ex) {
} catch (ClassNotFoundException e) {
}

Proszę

czy jest jakiś parametr (i), coś, za czym tęsknię?String zMQMessage#readLine()

moje pytanie tutaj dotyczy tylkoString konwersja,

Nie mam z tym żadnego problemuEncode zMQMessage#getBytes

questionAnswers(2)

yourAnswerToTheQuestion