Events 数据转换和编码CP037
我的系统从Events 数据转换和编码CP037,events,encoding,ibm-mq,mainframe,Events,Encoding,Ibm Mq,Mainframe,我的系统从webspheremq读取数据,该数据来自Mainframe队列,应用程序读取的数据是EBCDIC格式的- 早些时候它工作得很好,我们在今年早些时候迁移到jdk1.6(不确定这是否会导致此问题) 我得到一个变量值40,它是EBCDIC表示的“”,但它不是隐蔽的 那么问题是MQ或大型机应该负责这种转换吗?因为我们正在进行以下转换,但这不起作用- UnicodeFormat = "CP037";
webspheremq
读取数据,该数据来自Mainframe
队列,应用程序读取的数据是EBCDIC格式的-
早些时候它工作得很好,我们在今年早些时候迁移到jdk1.6(不确定这是否会导致此问题)
我得到一个变量值40,它是EBCDIC表示的“”,但它不是隐蔽的
那么问题是MQ或大型机应该负责这种转换吗?因为我们正在进行以下转换,但这不起作用-
UnicodeFormat = "CP037";
byte[] b;
b = UninterpretedRowdata.getBytes("Cp037");
//System.out.println("DEST CP : "+UnicodeFormat);
UnicodedRow = new String(b, UnicodeFormat);
提前谢谢。我不知道你为什么要自己做转换。奇怪的MQ为您进行转换要好得多。i、 e.RTM MQ进行转换需要两件事: 1) 消息需要将MD.Format字段设置为MQC.MQFMT_字符串 2) 使用convert发出MQGet API调用 i、 e
我编写了以下转换编码的代码:
public class Converter{
public static void main(String[] args) {
Charset charsetEBCDIC = Charset.forName("CP037");
Charset charsetACSII = Charset.forName("US-ASCII");
String ebcdic = "(((((((";
System.out.println("String EBCDIC: " + ebcdic);
System.out.println("String converted to ASCII: " + convertTO(ebcdic, charsetEBCDIC, charsetACSII));
String ascII = "MMMMMM";
System.out.println("String ASCII: " + ascII);
System.out.println("String converted to EBCDIC: " + convertTO(ascII, charsetACSII, charsetEBCDIC));
}
public static String convertTO(String dados, Charset encondingFrom, Charset encondingTo) {
return new String(dados.getBytes(encondingFrom), encondingTo);
}
}
这篇文章实际上是在它被标记为副本的那篇文章之前制作的;那篇文章被迁移到这里。我删除了那个;伙计们,请不要把这个当作那个的复制品来关闭。谢谢谢谢你检查这个。。。我们在这里使用JMS。。将检查JMS中的相同设置。希望有帮助。
public class Converter{
public static void main(String[] args) {
Charset charsetEBCDIC = Charset.forName("CP037");
Charset charsetACSII = Charset.forName("US-ASCII");
String ebcdic = "(((((((";
System.out.println("String EBCDIC: " + ebcdic);
System.out.println("String converted to ASCII: " + convertTO(ebcdic, charsetEBCDIC, charsetACSII));
String ascII = "MMMMMM";
System.out.println("String ASCII: " + ascII);
System.out.println("String converted to EBCDIC: " + convertTO(ascII, charsetACSII, charsetEBCDIC));
}
public static String convertTO(String dados, Charset encondingFrom, Charset encondingTo) {
return new String(dados.getBytes(encondingFrom), encondingTo);
}
}