为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

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

3 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

一般包含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');

}


查看完整回答
反对 回复 2019-04-08
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

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


查看完整回答
反对 回复 2019-04-08
?
慕村9548890

TA贡献1884条经验 获得超4个赞

我刚试了一下你这个方法解决了我的问题,但是我换成异步: fs.readFile() 的就不行,这是为什么呢。如果时异步我该怎么操作?


查看完整回答
反对 回复 2019-04-08
  • 3 回答
  • 0 关注
  • 639 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号