我使用node的fs.readFile读取的本地一个css文件内容中包含了UTF-8 BOM头

我使用node的fs.readFile读取了本地一个css文件内容cssData,
然后在页面的head标签中创建了style标签,将cssData赋给了style.innerHtml,
但是样式没生效,我检查后发现在style标签中样式的最前面多了个:&#65279,上网查了下说时utf-8的bom头,我输出了cssData没发现有这个,不知道怎么去除这个。请问我该怎么去掉style标签中的这个BOM头?

ITMISS
浏览 640回答 3
3回答

慕码人8056858

一般包含BOM头的是在windows下生成的(用诸如记事本之类工具才会添加)如果这个文件你可以控制,可以自行重新保存为没有BOM头的就好。否则,可以额外采用如下函数去除function readText(pathname) { //去除utf-8 BOM的文本文件读取    var bin = fs.readFileSync(pathname);    if (bin[0] === 0xEF && bin[1] === 0xBB && bin[2] === 0xBF) {        bin = bin.slice(3);    }    return bin.toString('utf-8');}

MMMHUHU

1.首先你这个css文件是否是你自己可控的呢?如果是可控的是否按照uft-8 no BOM标准保存一下再读取就ok了?2.如果1解决不了,能不能设置style.innerHtml= str.replace('','')

慕村9548890

我刚试了一下你这个方法解决了我的问题,但是我换成异步: fs.readFile() 的就不行,这是为什么呢。如果时异步我该怎么操作?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript