我通过使用 nodeset.xml 文件来创建 node-opcua 地址空间。我用要加载的文件名填充 server_options.nodeset_filename 数组。
这工作正常。
现在我想从配套规范中加载节点集“Opc.Ua.Ijt.Tightening.NodeSet2.xml”以进行收紧(https://github.com/OPCFoundation/UA-Nodeset/blob/v1.04/IJT/Tightening/ Opc.Ua.Ijt.Tightening.NodeSet2.xml)并认识到如果连接到服务器并使用 opcua 客户端读取,则某些描述会被删除。
例如,UAVariable NodeId="ns=1;i=6094" 包含字段“错误”,描述为“0 – OK ...”。
'0 - OK' 中的 '-' 是节点集 xml 中的 utf-8 编码字符。
经过一番调查,我fs.readFile(xmlFile, "ascii", (err, xmlData: string)
发现 export function readNodeSet2XmlFile
https://github.com/node-opcua/node-opcua/blob/master/packages/node-opcua-address-space/source_nodejs/generate_address_space.ts#:~:text=fs.readFile(xmlFile%2C%20 %22ascii%22%2C%20(err%2C%20xmlData%3A%20string)
OPC UA 规范告诉“所有字符串值都被编码为 UTF-8 字符序列”。
问题:
- node-opcua 真的读取 nodeset xml 'ascii' 编码还是我的错误解释?
- 有没有办法在读取节点集时强制 node-opcua 使用“utf-8”编码?