【发布时间】:2021-10-26 17:44:25
【问题描述】:
以下程序的预期输出和实际输出不同的原因可能是什么?实际输出缺少编码。
IDENTIFICATION DIVISION.
PROGRAM-ID. FOO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 doc PIC X(512).
01 Greeting.
05 msg PIC X(80) VALUE "Hello, world!".
PROCEDURE DIVISION.
XML GENERATE doc FROM Greeting
WITH ENCODING 1208
WITH XML-DECLARATION
END-XML
DISPLAY doc.
STOP RUN.
代码编译成功。我正在使用 Micro Focus 的 Visual COBOL 5.0。
预期输出:
<?xml version="1.0" encoding="UTF-8"?>
<Greeting><msg>Hello, world!</msg>
</Greeting>
实际输出:
<?xml version="1.0" ?><Greeting>
<msg>Hello, world!</msg></Greeting>
【问题讨论】:
-
可能是因为 1208 不是有效的代码页。为 UTF-8 尝试 65001
-
试过但没用。
-
您是否尝试过删除 WITH ENCODING 子句并在 generate 语句前添加 XML SET ENCODING "utf-8"?
-
Microfocus XML 手册可以在microfocus.com/documentation/visual-cobol/VC40/…找到
-
它工作!无论如何,我阅读文档以查看是否应该为 XML 生成语句安装一些库。但是,由于没有编译错误,我怀疑它的库问题。我遵循链接 (microfocus.com/documentation/enterprise-developer/ed50pu3/…) 中的 XML 生成逻辑。除了编码之外,每件事都按照链接中提到的语句工作。
标签: xml cobol microfocus