Как удалить этот символ из файла CSV, созданного Puppeteer? - PullRequest
0 голосов
/ 14 января 2020

Когда я генерирую CSV-файл, каждый «элемент» выводится с символом Â. Как бы я go об удалении этого с моим кодом. Я попытался изменить его на utf-8, потому что я прочитал, что это может быть причиной этого. Любые идеи? Пример: enter image description here

const products = await page.$$('.item-row'); 

Promise.all(products.map(async product => {
// Inside of each product find product SKU, it's human-readable name, and it's price
let productId = await product.$eval(".custom-body-copy", el => el.innerText.trim().replace(/,/g,' -').replace('Item  ', ''));
let productName = await product.$eval(".body-copy-link", el => el.innerText.trim().replace(/,/g,' -'));
let productPrice = await product.$eval(".product_desc_txt div span", el => el.innerText.trim().replace(/,/g,' -'));

// Format them as a csv line
return productId + ',' + productName + ',' + productPrice + ',';
})).then(lines => {
// Write the lines to a file
fs.writeFileSync("products.csv", lines.join('\n'), 'utf-8');
browser.close();
});
});

1 Ответ

0 голосов
/ 15 января 2020

Возможно, есть лучшие решения, но первое, что приходит на ум, - это изменить строку на массив с split(), а затем .map и протестировать код Ã ascii и вернуться обратно к строке. с join() вот так:

const strToChange = 'My string with an à char';

const charWeDoNotWant = 'Ã'.charCodeAt();

const toFixArr = strToChange.split('');

fixedArr = toFixArr.map(char =>
  char.charCodeAt() === charWeDoNotWant ? '' : char
);

const fixedStr = fixedArr.join('');
console.log(`String without Ã: ${fixedStr}`);
...