解决问题:

通过ftp读取中文内容的文件,会存在乱码,如下图:

解决方案

1.详见《安装 iconv-lite

2.在code节点,写如下代码:

const iconv = require('iconv-lite');

const items = $input.all();
items.forEach(item => {
    if (item.binary && item.binary.data) {
        // 假设 item.binary.data.data 是一个 Base64 字符串
        const base64Data = item.binary.data.data;

        try {
            // 1. 先将其转换为 Buffer
            const buffer = Buffer.from(base64Data, 'base64');

            // 2. 尝试使用 GBK 解码(适合中文)
            let decodedText;
            try {
                decodedText = iconv.decode(buffer, 'gbk');
            } catch (e) {
                // 如果失败,尝试 UTF-8
                decodedText = iconv.decode(buffer, 'utf8');
            }

            // 3. 存入 JSON
            item.json.decodedContent = decodedText.trim(); // 去除首尾空白
        } catch (e) {
            item.json.error = "Failed to decode: " + e.message;
        }
    } else {
        item.json.error = "No binary data found in item";
    }
});

return items;

再执行,效果如下图:

Logo

一站式 AI 云服务平台

更多推荐