Konvertiert String von EBCDIC nach Unicode / UTF8

Ich kann Nachrichten von sendenJava zuWebsphere MQ aufAS400. Wenn ich Nachrichten von sendeWinXPEs gibt keinen Unterschied, ob ich einen barrierefreien benutzeLocale, einschließlich vollständiger Sprachlokalisierung; Es gibt auch kein Problem mit EnglischLocale. Wichtig für die korrekte Kodierung ist nur diese Codezeile:

msgId.characterSet = 1208;

Leider ist es nicht gültig. Es gibt Unterschiede in dem Fall, von dem ich die Nachricht entgegennehmen möchteMQ Queue.

Für den Fall, dass ich eine Nachricht von bekommeMQ Queue Unter Windows OS (Englisch ohne Sprachpaket) kann ich Nachrichten von entgegennehmenMQ Queue imString bilden.

Für den Fall, dass das Windows-Betriebssystem mit einigen Sprachpaketen vollständig lokalisiert ist, erhalte ich eine Ausnahme

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

from code (Balast von try - catch - finally block entfernt)

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) {
}

Bitte

Gibt es einige Parameter, die ich dort vermisse?String vonMQMessage#readLine()

meine frage geht hier nur umString Umwandlung,

Ich habe kein Problem mitEncode vonMQMessage#getBytes

Antworten auf die Frage(2)

Ihre Antwort auf die Frage