Convierte una cadena de EBCDIC a Unicode / UTF8

Soy capaz de enviar mensajes desdeJava aWebsphere MQ enAS400. Si envío mensajes desdeWinXP, no hay diferencia si utilizo alguna accesibleLocale, incluyendo la localización completa del idioma; ni hay problema con el inglesLocale. Importante para la codificación correcta es solo esta línea de código:

msgId.characterSet = 1208;

En desgracia, no es válido. Hay diferencias en el caso de que quiero tomar el mensaje deMQ Queue.

En el caso de que reciba mensaje deMQ Queue desde el sistema operativo Windows (inglés sin ningún paquete de idioma), puedo recibir mensajes deMQ Queue enString formar.

En el caso de que el sistema operativo Windows esté completamente localizado con algún paquete de idioma, recibo una excepción

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

del código (se eliminó el balasto del try - catch - finalmente se bloquea)

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

Por favor

¿Hay algún parámetro (s), algo que echo de menos para tomarlo?String desdeMQMessage#readLine()

mi pregunta aquí es sólo acerca deString conversión,

No tengo ningún problema conEncode desdeMQMessage#getBytes

Respuestas a la pregunta(2)

Su respuesta a la pregunta