国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

nodejs讀取本地中文json文件出現亂碼解決方法

2024-05-06 15:28:52
字體:
來源:轉載
供稿:網友

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

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來讀取文件之后依然報錯,百思不得其解。

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

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

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

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

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

圖片精選

主站蜘蛛池模板: 嘉禾县| 东方市| 通化县| 桂东县| 迭部县| 青冈县| 桑日县| 怀远县| 霞浦县| 紫云| 兴隆县| 汉沽区| 广昌县| 娄底市| 遂昌县| 剑河县| 裕民县| 莱州市| 贺兰县| 怀化市| 扶绥县| 遵义县| 新疆| 黄平县| 衡山县| 华坪县| 大新县| 云霄县| 南汇区| 河东区| 墨竹工卡县| 夏津县| 桐城市| 龙州县| 精河县| 兰西县| 吴桥县| 循化| 灵宝市| 黄梅县| 眉山市|