Reg:从EBCDIC到UTF的数据转换 - 8

时间:2015-09-23 06:32:05

标签: xml encoding db2 ibm-mq mainframe

我使用函数 XML GENERATE 生成了XML数据,然后使用COBOL - MQPUT Batch程序将相同的数据放在WebSphere MQ中。

从其他COBOL - MQGET批处理程序中,我从MQ检索了XML数据,并尝试将相同的数据插入到pureXML表中,但我遇到了错误代码 00002039Q

因为pureXML表仅支持UTF-8编码格式。但是我们生成的XML数据是EBCDIC格式。

请帮助我如何将EBCDIC / UTF-16数据转换为UTF-8数据。

提前致谢。

3 个答案:

答案 0 :(得分:0)

您可以使用get message选项MQGMO_CONVERT在从队列中获取时请求将数据转换为给定的CCSID。

您可以在此处找到示例:http://www-01.ibm.com/support/knowledgecenter/api/content/nl/en-us/SSFKSJ_7.5.0/com.ibm.mq.dev.doc/q032130_.htm#q032130___ccode

或者在附加到MQ安装的示例中的文件:amqsget0.c中。

答案 1 :(得分:0)

通常,XML流上不应有任何显式转换。 XML文档能够自定义其编码。以UTF-8或UTF-16之外的任何其他编码发送原始XML(无前导码)不是标准的。有关编码XML的讨论,请参阅Autodetection of Character Encodings

您应该在XML GENERATE数据中添加前导码。在此处找到与您的平台一致的编码:http://www-01.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.xml/src/tpc/db2z_xmldataencoding.dita

E.g。将编码设置为EBCDIC/Lat1,然后添加

<?xml version="1.0" encoding="IBM1047"?>

答案 2 :(得分:0)

谢谢您的回复。

我尝试了另一种方式,即通过使用 WITH ENCODING 1208 功能指定代码页转换1208来生成XML文档,然后问题得到解决。

使用该编码格式,我成功地将数据插入到pureXML表中。