通过外部请求导出Tally数据时非英文文本显示为问号的问题
Tally外部请求导出数据时非英文文本显示为
?的问题 从Tally内部导出数据时支持多语言文本,但通过cmd、Postman等外部源执行XML文件时,非英文文本会显示为?符号。
我的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>
Post请求测试
UTF-8编码
请求头:Content-Type:application/xml; charset=utf-8
测试后非英文文本仍显示为?
UTF-16编码
请求头:Content-Type:application/xml; charset=utf-16
测试后非英文文本仍显示为?
Curl命令测试
执行的curl命令:
curlcommand = cd C:\Users\..\Data\ && curl -H "Content-Type: text/plain; charset=UTF-8" localhost:9001 --data @Basic\I_SPND.xml
测试后非英文文本仍显示为?
Node.js代码实现
const asynchronousProcess = () => { var inputFilename = Path + 'I_SPND.xml'; // 存储上述XML代码的路径 fs.writeFile(inputFilename, values, 'utf8', function (err) { if (err) { return console.log(err); } }); return new Promise((resolve, reject) => { let cmd = curlcommand; // 上述提到的curl命令 exec(cmd, (error, stdout, stderr) => { if (error) { reject(error); } resolve(stdout ? stdout : stderr); }); }); }
举例:当PartyLedgerName为非英文文本时,返回结果中该字段显示为?。
仅在Tally开发工具中运行时支持多语言文本,通过外部请求或curl命令执行时均不支持。
内容的提问来源于stack exchange,提问作者Abisha
相关产品推荐
相关产品推荐

