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

Reg : Data Conversion from EBCDIC to UTF - 8

我使用函数 XML GENERATE 生成了 XML 数据,然后我使用 COBOL 将相同的数据放入 WebSphere MQ - MQPUT 批处理程序。

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

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

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

提前致谢。

您可以使用获取消息选项 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

或在文件中:amqsget0.c MQ 安装附带的样本中。

通常,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

例如将编码设置为 EBCDIC/Lat1 你会在前面加上

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

谢谢您的回复。

我尝试了不同的方式,我通过使用 WITH ENCODING 1208 函数指定代码页转换 1208 来生成 XML 文档,然后问题得到解决。

使用这种编码格式,我成功地将我的数据插入到 pureXML table.