You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过外部请求导出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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 22:57:27