最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js文本文件BOM頭的去除方法

 更新時(shí)間:2020年11月22日 10:35:06   作者:Sobird  
這篇文章主要給大家介紹了關(guān)于Node.js文本文件BOM頭的去除方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

BOM

字節(jié)順序標(biāo)記(byte order mark),是位于碼點(diǎn)U+FEFF的統(tǒng)一碼字符的名稱。當(dāng)以UTF-16或UTF-32來將UCS/統(tǒng)一碼字符所組成的字符串編碼時(shí),這個(gè)字符被用來標(biāo)示其字節(jié)序。它常被用來當(dāng)做標(biāo)示文件是以UTF-8、UTF-16或UTF-32編碼的標(biāo)記。

不同編碼的字節(jié)順序標(biāo)記的表示:

編碼 表示(十六進(jìn)制) 表示(十進(jìn)制)
UTF8 EF BB BF 239 187 191
UTF-16(大端序) FE FF 254 255
UTF-16(小端序) FF FE 255 254
UTF-32(大端序) 00 00 FE FF 0 0 254 255
UTF-32(小端序) FF FE 00 00 255 254 0 0

BOM添加

UTF8編碼不需要BOM, 但是我們可以手動給UTF8編碼文件添加一個(gè)BOM頭

const fs = require('fs');

fs.writeFile('./bom.js', '\ufeffThis is an example with accents : é è à ', 'utf8', function (err) {})

BOM移除

對于UTF8來說,BOM的有無并不是必須的,因?yàn)閁TF8字節(jié)沒有順序,不需要標(biāo)記,也就是說一個(gè)UTF8文件可能有BOM,也可能沒有BOM。

根據(jù)不同編碼的BOM不同,我們可以根據(jù)文件頭幾個(gè)字節(jié)來判斷文件是否包含BOM,以及使用的那種Unicode編碼。

BOM字符雖然起到了標(biāo)記文件編碼的作用,其本身卻不屬于文件內(nèi)容的一部分,如果讀取文本文件時(shí)不去掉BOM,在某些使用場景下就會有問題。例如我們把幾個(gè)JS文件合并成一個(gè)文件后,如果文件中間含有BOM字符,就會導(dǎo)致瀏覽器JS語法錯(cuò)誤。因此,使用Node.js讀取文本文件時(shí),一般需要去掉BOM。

// 對于字符串內(nèi)容
function stripBOM(content) { 
 // 檢測第一個(gè)字符是否為BOM 
 if (content.charCodeAt(0) === 0xFEFF) {
 content = content.slice(1);
 }
 return content;
}

// 對于Buffer
function stripBOMBuffer(buf) { 
 if (buf[0] === 0xEF && buf[1] === 0xBB && buf[2] === 0xBF) { 
 buf = buf.slice(3); 
 } 
 return buf;
}

參考

總結(jié)

到此這篇關(guān)于Node.js文本文件BOM頭去除的文章就介紹到這了,更多相關(guān)Node.js文本文件BOM頭去除內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • pnpm的安裝及其使用教程(匯總)

    pnpm的安裝及其使用教程(匯總)

    pnpm是 Node.js 的替代包管理器,它是 npm 的直接替代品,速度更快、效率更高,它由 npm/yarn 衍生而來,但卻解決了 npm/yarn 內(nèi)部潛在的 bug,并且極大了地優(yōu)化了性能,本文給大家介紹pnpm的安裝及其使用,感興趣的朋友一起看看吧
    2023-12-12
  • 了不起的node.js讀書筆記之node.js中的特性

    了不起的node.js讀書筆記之node.js中的特性

    這篇文章主要介紹了了不起的node.js讀書筆記之node.js中的特性,需要的朋友可以參考下
    2014-12-12
  • NodeJs基本語法和類型

    NodeJs基本語法和類型

    這篇文章主要介紹了NodeJs基本語法和類型的相關(guān)資料,需要的朋友可以參考下
    2015-02-02
  • node.js中的http.response.getHeader方法使用說明

    node.js中的http.response.getHeader方法使用說明

    這篇文章主要介紹了node.js中的http.response.getHeader方法使用說明,本文介紹了http.response.getHeader的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 使用Node.js配合Nginx實(shí)現(xiàn)高負(fù)載網(wǎng)絡(luò)

    使用Node.js配合Nginx實(shí)現(xiàn)高負(fù)載網(wǎng)絡(luò)

    這篇文章主要介紹了使用Node.js配合Nginx實(shí)現(xiàn)高負(fù)載網(wǎng)絡(luò),Node的異步加上Nginx的反向代理在性能上實(shí)在是給力!需要的朋友可以參考下
    2015-06-06
  • 利用Node.js手寫一個(gè)簡單的koa

    利用Node.js手寫一個(gè)簡單的koa

    這篇文章主要為大家詳細(xì)介紹了如何手動寫一個(gè)簡單的koa,通過這個(gè)流程就可以較好的掌握koa2中的基本概念,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • npm?i報(bào)錯(cuò)以及解決方案實(shí)戰(zhàn)案例

    npm?i報(bào)錯(cuò)以及解決方案實(shí)戰(zhàn)案例

    npm在前端開發(fā)流程中提供了非常完善的自動化工具鏈,但是同樣由于其復(fù)雜性導(dǎo)致有很多奇奇怪怪的問題,下面這篇文章主要給大家介紹了關(guān)于npm?i報(bào)錯(cuò)以及解決方案的相關(guān)資料,需要的朋友可以參考下
    2022-07-07
  • Node.js 基礎(chǔ)教程之全局對象

    Node.js 基礎(chǔ)教程之全局對象

    這篇文章主要介紹了Node.js 基礎(chǔ)教程之全局對象的相關(guān)資料,Node.js 中的全局對象是 global,所有全局變量(除了 global 本身以外)都是 global 對象的屬性,需要的朋友可以參考下
    2017-08-08
  • webpack配置文件和常用配置項(xiàng)介紹

    webpack配置文件和常用配置項(xiàng)介紹

    本篇文章主要介紹了webpack配置文件和常用配置項(xiàng)的相關(guān)知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04
  • node.js中Socket.IO的進(jìn)階使用技巧

    node.js中Socket.IO的進(jìn)階使用技巧

    這篇文章主要介紹了node.js中Socket.IO的進(jìn)階使用技巧,本文講解了配置、房間、事件、授權(quán)等內(nèi)容,需要的朋友可以參考下
    2014-11-11

最新評論

丰台区| 荣成市| 韶关市| 上饶市| 凌源市| 增城市| 自治县| 平安县| 金川县| 城固县| 上高县| 五家渠市| 仪征市| 手游| 安龙县| 汝城县| 乳山市| 昌江| 措美县| 齐河县| 永清县| 正阳县| 门源| 同德县| 富锦市| 拉孜县| 新巴尔虎右旗| 穆棱市| 玛沁县| 建昌县| 舞阳县| 子洲县| 明星| 无锡市| 横峰县| 罗江县| 秦安县| 图们市| 清流县| 鱼台县| 阳西县|