1

我正在使用 XML-INTO 操作码来解析 Web 服务请求。我时不时地在日志中得到错误

(RNX0351 - "The XML parser detected error code 302").

302 的帮助是

302 The parser does not support the requested CCSID value or 
the first character of the XML document was not '<'

据我所知,第一个字符是“<”,并且请求是从以前的 Web 服务调用生成的,所以如果 CCSID 发生了变化,我会非常惊讶。

对于特定查询,该错误是可重复的,因此几乎可以肯定它与数据相关,我只是不确定如何识别有问题的项目。

关于如何确定问题的任何想法,或者更好的是,如何克服它?

干杯

4

3 回答 3

2

CCSID 是一个 AS400/iSeries/Power System 属性,它适用于整个 IFS。
这就像声明文件内部是什么,或者换句话说,它的内部编码“应该”是什么。

假设文件中的数据内容编码与文件一(信封)匹配,盒子使用该属性来显示和处理对应的字符。

听起来您以一种编码接收数据,但 CCSID 文件不匹配。

尝试更改文件上的 CCSID(仅信封)。EG: 37 (美国), 500 (latin-1), 819 (utf-8), 850 (dos), 1252 (win) 和显示文件之后。

您可以先在 QSH 或 QP2TERM 或 EDTF 中使用 ls -Sla yourfile 检查。CHGATTR 允许您更改 CCSID 以及 QSH 中的 setccsid(再次)。

这种方式帮助我找到了相关的问题。请记住,虽然数据可能在这四百个中可见,但它们可能无法通过 Win 中的共享文件夹可见。这意味着 CCSID 文件,内容编码不匹配。

希望能帮助到你。

于 2015-01-29T22:42:16.267 回答
1

嗨,我已经看到使用 FTP 和 CCSID 819(ISO 8859-1 ASCII)上传到 AS400/iSeries/IBM i 的 XML 数据出现此错误,并且在文件的前几个位置有一些二进制垃圾。使用 FTP “quote type c 1208”将编码更改为 CCSID 1208(带有 IBM PUA 的 UTF-8),问题得到解决,XML-INTO 成功。

因此,关于使用 XML-INTO 时收到的 XML 解析器错误 302 的建议是查看文件 (wrklnk ...),如果第一个字符不是“<”而是一些二进制垃圾,则尝试使用 CCSID 1208 获取 utf-8。

根据 IBM 文档: https ://www-01.ibm.com/software/globalization/ccsid/ccsid819,此答案中关于 819 是什么以及 ccsid 代表 utf-8 的陈述与先前的答案不一致,但是是正确的 。 html https://www-01.ibm.com/software/globalization/ccsid/ccsid1208.html

于 2018-06-03T15:21:21.647 回答
0

我正在解决这个问题几个小时,

对我来说,解决方案是在使用数据结构或变量存储 xml 时使用选项 ccsid=UCS2。

类似的东西:

XML-INTO 客户 %XML( xmlSource : 'ccsid=UCS2');

我的程序在 ccsid = 870 上运行,每次在 xmlSource 字段上转换为 ccsid 都不起作用,奇怪的是,当我使用 ccsid = 850 的文件时,一切正常

我提到这是因为这是您查看此问题时的第一页。
也许这对某人有帮助。

于 2018-09-23T20:05:57.923 回答