【发布时间】:2022-10-20 15:07:01
【问题描述】:
从 tally 导出 tally 数据时,它支持多语言文本,但在从其他来源(如 cmd 或邮递员请求)执行 xml 文件时,其他语言文本返回,如 ????符号
我的代码是
<?xml version="1.0" encoding="UTF-8"?>
<ENVELOPE>
<HEADER>
<TALLYREQUEST>ExportData</TALLYREQUEST>
</HEADER>
<BODY>
<EXPORTDATA>
<REQUESTDESC>
<REPORTNAME>TNetSA LedgerSalesorders</REPORTNAME>
<STATICVARIABLES>
<SVCURRENTCOMPANY>${companyName}</SVCURRENTCOMPANY>
<SVFROMDATE>${fromDate}</SVFROMDATE>
<SVTODATE>${toDate}</SVTODATE>
<SVEXPORTFORMAT>$$SysName:XML</SVEXPORTFORMAT>
</STATICVARIABLES>
</REQUESTDESC>
</EXPORTDATA>
</BODY>
</ENVELOPE>
发布请求 UTF-8
标头=> 内容类型:应用程序/xml;字符集=utf-8
https://i.stack.imgur.com/T9WDW.png
UTF-16
标头=> 内容类型:应用程序/xml;字符集=utf-16
https://i.stack.imgur.com/S4J7H.png
使用卷曲命令
curlcommand = cd C:\Users\..\Data\ && curl -H "Content-Type: text/plain; charset=UTF-8" localhost:9001 --data @Basic\I_SPND.xml
https://i.stack.imgur.com/PJpAK.png
节点js:
const asynchronousProcess = () => {
var inputFilename = Path + 'I_SPND.xml';//path of the stored above xml code
fs.writeFile(inputFilename, values, 'utf8', function (err) {
if (err) {
return console.log(err);
}
});
return new Promise((resolve, reject) => {
let cmd = curlcommand; // above mentioned curl command
exec(cmd, (error, stdout, stderr) => {
if (error) {
reject(error);
}
resolve(stdout ? stdout : stderr);
});
});
}
例如:如果 PartyLedgerName 是其他语言的文本结果将是 ????
在计数开发工具上运行时,它支持多语言文本,但在发布请求或使用 curl 命令时意味着它不支持
【问题讨论】:
标签: node.js xml curl encoding tally