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

nodejs讀取本地中文json文件出現(xiàn)亂碼解決方法

 更新時間:2018年10月10日 14:49:10   作者:salmonellavaccine  
在本篇文章中我們給大家分享了關于nodejs讀取本地中文json文件出現(xiàn)亂碼的解決方法,需要的朋友們可以學習下。

1. 確定json文件是UTF-8 無BOM編碼的的。如果有BOM,會在讀取第一行的時候出現(xiàn)亂碼。

Per "fs.readFileSync(filename, 'utf8') doesn't strip BOM markers #1918", fs.readFile is
working as designed: BOM is not stripped from the header of the UTF-8 file, if it exists. It at the discretion of the developer to handle this.

Possible workarounds:

  • data= data.replace(/^\uFEFF/, ''); perhttps://github.com/joyent/node/issues/1918#issuecomment-2480359
  • Transform the incoming stream to remove the BOM header with the NPM module bomstrip perhttps://github.com/joyent/node/issues/1918#issuecomment-38491548

What you are getting is the byte order mark header (BOM) of the UTF-8 file. When JSON.parse sees
this, it gives an syntax error (read: "unexpected character" error). You must strip the byte order mark from the file before passing it to JSON.parse:

fs.readFile('./myconfig.json', 'utf8', function (err, data) {
  myconfig = JSON.parse(data.toString('utf8').replace(/^\uFEFF/, ''));
});
// note: data is an instance of Buffer

2. 確定json沒有格式錯誤。我在用utf8編碼并用utf8 encoding來讀取文件之后依然報錯,百思不得其解。

最后發(fā)現(xiàn)json有兩個editor沒有發(fā)現(xiàn)的格式錯誤,一個是一個數組中兩個元素之間少了一個“,”,另一個是另一個數組最后多了一個“,”。

注1:Node的iconv模塊,僅支持linux,不支持Windows,因此要用純js的iconv-lite,另:作者說iconv-lite的性能更好,具體參考Git站點:iconv-lite

注2:我在測試讀寫文件時,始終無法把中文寫入文件,一直亂碼,讀取正常,后來同事幫我發(fā)現(xiàn):js文件的編碼格式是ansi,nodejs的代碼文件必須是utf8格式

注3:如果程序操作的文件,都是以UTF8編碼格式保存的,那么就不需要使用iconv模塊,直接以utf8格式讀取文件即可,如:

// 參數file,必須保存為utf8格式,否則里面的中文會亂碼  
function readFile(file){  
    // readFile的第2個參數表示讀取編碼格式,如果未傳遞這個參數,表示返回Buffer字節(jié)數組  
    fs.readFile(file, "utf8", function(err, data){  
        if(err)  
            console.log("讀取文件fail " + err);  
        else{  
            // 讀取成功時  
            console.log(data);// 直接輸出中文字符串了  
        }  
    });  
}

nodejs讀取中文文件編碼問題

準備一個文本文件(當然也可以是csv文件等)test.txt和text.csv,nodejs文件test.js如下:

var iconv = require('iconv-lite');  
  
var fs = require('fs');  
var fileStr = fs.readFileSync('D:\\test.csv', {encoding:'binary'});  
  
var buf = new Buffer(fileStr, 'binary');  
  
var str = iconv.decode(buf, 'GBK');  
console.log(str);  

直接讀文件的話是亂碼,不信你可以試試。需要先統(tǒng)一用二進制編碼方式讀取,然后再用GBK解碼。

相關文章

  • JavaScript圖像放大鏡效果實現(xiàn)方法詳解

    JavaScript圖像放大鏡效果實現(xiàn)方法詳解

    這篇文章主要介紹了JavaScript圖像放大鏡效果實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-06-06
  • JavaScript實現(xiàn)給對象添加一個只讀屬性

    JavaScript實現(xiàn)給對象添加一個只讀屬性

    這篇文章主要為大家介紹了JavaScript如何給對象加一個只讀屬性,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-06-06
  • Javascript使用post方法提交數據實例

    Javascript使用post方法提交數據實例

    這篇文章主要介紹了Javascript使用post方法提交數據,實例分析了javascript實現(xiàn)post提交數據的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • layDate日期控件使用方法詳解

    layDate日期控件使用方法詳解

    這篇文章主要為大家詳細介紹了layDate日期控件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • canvas繪制愛心的幾種方法總結(推薦)

    canvas繪制愛心的幾種方法總結(推薦)

    下面小編就為大家?guī)硪黄猚anvas繪制愛心的幾種方法總結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10
  • IE9+已經不對document.createElement向下兼容的解決方法

    IE9+已經不對document.createElement向下兼容的解決方法

    這篇文章主要介紹了IE9+已經不對document.createElement向下兼容的解決方法,需要的朋友可以參考下
    2015-09-09
  • uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導航功能的全過程

    uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導航功能的全過程

    最近項目需要在APP內實現(xiàn)路線規(guī)劃導航功能,直接打開高德地圖進行導航,下面這篇文章主要給大家介紹了關于利用uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導航功能的相關資料,需要的朋友可以參考下
    2022-08-08
  • JS實現(xiàn)一鍵回頂功能示例代碼

    JS實現(xiàn)一鍵回頂功能示例代碼

    一鍵回頂功能想必大家在瀏覽網頁時會經常遇到吧,實現(xiàn)的方法也有很多,在本文為大家介紹下js是如何實現(xiàn)的,感興趣的朋友可以參考下
    2013-10-10
  • 基于Next.js實現(xiàn)在線Excel的詳細代碼

    基于Next.js實現(xiàn)在線Excel的詳細代碼

    Next.js是一款React 開發(fā)框架,它可以幫助我們構建 React 應用程序。作為一個輕量級React服務端渲染應用框架,這篇文章主要介紹了基于?Next.js實現(xiàn)在線Excel,需要的朋友可以參考下
    2022-08-08
  • JavaScript偽數組和數組的使用與區(qū)別

    JavaScript偽數組和數組的使用與區(qū)別

    這篇文章主要給大家介紹了關于JavaScript偽數組和數組使用與區(qū)別的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-05-05

最新評論

辉县市| 武邑县| 江阴市| 海兴县| 咸丰县| 吴江市| 温宿县| 汶上县| 德钦县| 甘南县| 松阳县| 阳朔县| 滕州市| 江津市| 习水县| 抚宁县| 临沭县| 渑池县| 江都市| 潜山县| 宁陵县| 昆明市| 肥东县| 波密县| 惠水县| 新巴尔虎左旗| 武胜县| 绥阳县| 康保县| 齐齐哈尔市| 平定县| 新建县| 新乐市| 修文县| 六盘水市| 长垣县| 武胜县| 长治市| 衡阳市| 和田市| 芜湖市|