我使用函数 XML GENERATE 生成了XML数据,然后使用COBOL - MQPUT Batch程序将相同的数据放在WebSphere MQ中。
从其他COBOL - MQGET批处理程序中,我从MQ检索了XML数据,并尝试将相同的数据插入到pureXML表中,但我遇到了错误代码 00002039Q 。
因为pureXML表仅支持UTF-8编码格式。但是我们生成的XML数据是EBCDIC格式。
请帮助我如何将EBCDIC / UTF-16数据转换为UTF-8数据。
提前致谢。
答案 0 :(得分:0)
您可以使用get message选项MQGMO_CONVERT在从队列中获取时请求将数据转换为给定的CCSID。
或者在附加到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表中。