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

首頁 > 語言 > JavaScript > 正文

詳解Node.js讀寫中文內容文件操作

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

由于Node.js僅支持如下編碼:utf8, ucs2, ascii, binary, base64, hex,并不支持中文GBK或GB2312之類的編碼,

因此如果要讀寫GBK或GB2312格式的文件的中文內容,必須要用額外的模塊:iconv-lite

1、安裝模塊:npm install iconv-lite

2、演示代碼,把下面的代碼復制到一個文件中,假設是ch.js(注意:js文件必須保存為utf8編碼格式):

// 加載File System讀寫模塊var fs = require('fs');// 加載編碼轉換模塊var iconv = require('iconv-lite');  var file = "c://a.txt";writeFile(file);readFile(file); function writeFile(file){ // 測試用的中文 var str = "/r/n我是一個人Hello myself!"; // 把中文轉換成字節數組 var arr = iconv.encode(str, 'gbk'); console.log(arr);  // appendFile,如果文件不存在,會自動創建新文件 // 如果用writeFile,那么會刪除舊文件,直接寫新文件 fs.appendFile(file, arr, function(err){  if(err)   console.log("fail " + err);  else   console.log("寫入文件ok"); });} function readFile(file){ fs.readFile(file, function(err, data){  if(err)   console.log("讀取文件fail " + err);  else{   // 讀取成功時   // 輸出字節數組   console.log(data);   // 把數組轉換為gbk中文   var str = iconv.decode(data, 'gbk');   console.log(str);  } });}

3、用node.exe執行這個js文件,結果如下:

C:/>node ch.js<Buffer 0d 0a ce d2 ca c7 d2 bb b8 f6 c8 cb 48 65 6c 6c 6f 20 6d 79 73 65 6c 66 21>寫入文件ok<Buffer 0d 0a ce d2 ca c7 d2 bb b8 f6 c8 cb 48 65 6c 6c 6f 20 6d 79 73 65 6c 66 21> 我是一個人Hello myself! C:/>

注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);// 直接輸出中文字符串了  } });}

結論:使用node.js開發時,無論是代碼文件,還是要讀寫的其它文件,都建議使用UTF8編碼格式保存,這樣可以無需額外的模塊支持

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 梁山县| 伊通| 静乐县| 米泉市| 奉化市| 溧水县| 平江县| 阿鲁科尔沁旗| 喀什市| 潜江市| 固阳县| 德阳市| 浪卡子县| 马龙县| 阳曲县| 汉源县| 彰武县| 中山市| 佛山市| 冷水江市| 龙门县| 南阳市| 瓦房店市| 和硕县| 长治县| 准格尔旗| 隆昌县| 仲巴县| 晋州市| 云阳县| 巨野县| 罗山县| 广州市| 台安县| 海南省| 嘉峪关市| 财经| 冷水江市| 冷水江市| 武川县| 娱乐|