解決問題:
通過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. 先將其轉換為 Bufferconst buffer = Buffer.from(base64Data, 'base64');// 2. 嘗試使用 GBK 解碼(適合中文)let decodedText;try {decodedText = iconv.decode(buffer, 'gbk');} catch (e) {// 如果失敗,嘗試 UTF-8decodedText = iconv.decode(buffer, 'utf8');}// 3. 存入 JSONitem.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;
再執行,效果如下圖: