nodejs讀取檔案亂碼問題
關於nodejs讀取中文檔案真是折騰了不少時間,網上各種方案,最後沒有一個適用我,好在解決了。
下面的三個知識點都是從專案中抽出的,要單獨執行指令碼的話需要用全域性模式來安裝模組,比如安裝中文轉換模組(後續其它的也需要這麼做):
複製程式碼 程式碼如下:npm install -g iconv-lite
npm install -g nodemailer
npm install -g node-schedule
1、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);
直接讀檔案的話是亂碼,不信你可以試試。需要先統一用二進位制編碼方式讀取,然後再用GBK解碼。執行結果如下:
2、nodejs傳送郵件
啥都不想說,直接上程式碼,簡單易懂:
複製程式碼 程式碼如下:var nodemailer = require('nodemailer');
//配置郵件
var transporter = nodemailer.createTransport('SMTP',{
service: '163qiye',
auth: {
user: '[email protected]',
pass: '123456',
}
});
//傳送郵件
var sendmail = function(html){
var option = {
from:"[email protected]",
to:"[email protected],[email protected]",
cc:'[email protected]'
}
option.subject = '我5年前制定的五年計劃'
option.html= html;
transporter.sendMail(option, function(error, response){
if(error){
console.log("fail: " + error);
}else{
console.log("success: " + response.message);
}
});
}
//呼叫傳送郵件
sendmail("郵件內容:<br/>My goal for 2015 is to accomplish the goals of 2014 which I should have done in 2013 because I made a promise in 2012 & planned in 2011!");
3、nodejs定時任務
這個用法很多,如果熟悉linux crontab語法,這個就更簡單了。我鄒的這個例子很和諧,呵呵:
var schedule = require('node-schedule');
/*方式一:
指定某一個時間執行任務
*/
var schedule = require('node-schedule');
var date = new Date(2014, 12, 31, 16, 1, 0);
var j = schedule.scheduleJob(date, function(){
console.log('2015 will soon come.');
});
/*方式二:
在每個小時的多少分鐘執行
*/
var rule = new schedule.RecurrenceRule();
rule.minute = 1;
var j = schedule.scheduleJob(rule, function(){
console.log('I\'m very happy now!');
});
/*方式三:
類似crontab
*/
var j = schedule.scheduleJob('1 * * * *', function(){
console.log('It\'s time to 下午茶!');
});
執行結果更和諧,呵呵:
不要奇怪為什麼第一個計劃任務沒有執行,因為這個是格林威治時間,它需要等8個小時後再執行。呵呵~~
相關推薦
nodejs讀取檔案亂碼問題
關於nodejs讀取中文檔案真是折騰了不少時間,網上各種方案,最後沒有一個適用我,好在解決了。下面的三個知識點都是從專案中抽出的,要單獨執行指令碼的話需要用全域性模式來安裝模組,比如安裝中文轉換模組(後續其它的也需要這麼做):複製程式碼 程式碼如下:npm install -
java讀取檔案亂碼
有時候我們讀取檔案的時候切換了utf-8、gbk、gb2312幾種編碼方式,但是還是亂碼,這個時候我們要去檢視一下檔案的編碼方式: 1.在Vim中可以直接檢視檔案編碼 :set fileencoding 2.在subline中檢視檔案編碼 Sublime Text的預設設定是不開啟顯示
MultipartHttpServletRequest,ajaxFileUpload上傳檔案,讀取檔案亂碼問題
@RequestMapping(value = "/uploadOrgid", method = RequestMethod.POST, produces = "text/html;charset=UTF-8") @ResponseBody public String upl
40、使用位元組流讀取檔案亂碼問題
寫出中文 向txt檔案中寫出中文,通過下面程式碼的演示,因為一箇中文佔2個位元組,所以按照位元組寫出中文時會出現亂碼的情況。 package com.sutaoyu.IO; import java.io.FileNotFoundException; import java.io.FileOutpu
FileReader讀取檔案亂碼問題
FileReader fr=new FileReader(new File(filePath)); BufferedReader br = new BufferedReader(fr); 直接使用FileReader讀取一個包含中文字元的檔案,將字元輸入流放到BufferedReade
nodejs檔案讀取中文亂碼問題
參考自《深入淺出nodejs》 Buffer物件類似於陣列,元素為16進位制的兩位數,0-255的數值 是二進位制,與字串有編碼的關係 Buffer物件可以與字串之間相互轉換,目前支援:ASCII,UTF-8,UTF-16LE/UCS-2,Base64,Binary,Hex
Java讀取檔案時第一行出現亂碼“?”問號
我們在使用Java在讀取檔案(txt、dat等)時,如果檔案不是utf-8格式的話,讀取結果會出現,中文字元變亂碼的情況,所以一般在讀取時轉為UTF-8格式讀取。 但這時會出現一種情況,第一次讀取第一行第一個字元時會出現“?”的亂碼這個是java本身編碼格式轉換的問題,可以採用一下方式解決:
nodejs 中讀取檔案狀態;fs.stat()方法;
var fs = require("fs"); /* 讀取檔案的狀態; fs.stat(path,callback); callback有兩個引數;err,stats;stats是一個fs.Stats物件; &nbs
node.js在讀取檔案時中文亂碼問題
斷更很久了........從今天開始會努力的持續更博,積極學習。 言歸正傳。今天在寫node.js的demo時發現一個bug。我在node中讀取本地的text檔案時,發現英文的內容可以被讀取,但是中文的就顯示的是亂碼。如下圖 產生這種問題的原因是: Windows下預設的編碼格式是AS
Android第二十三課 Java檔案讀取中文亂碼
1 位元組流以及編碼轉換說明 String str = "中"; byte[] b_gbk =str.getBytes("GBK"); byte[] b_utf8 =str.getBytes("UTF-8"); String s_gbk = newString(b_gbk,"GBK"); Str
Java 讀取寫入檔案亂碼問題解決
Java 讀取寫入檔案亂碼問題解決 寫檔案 讀檔案 寫檔案 File f = new File(fileName); if (!f.exists()) {
JAVA本地讀取檔案,解決中文亂碼問題
JAVA本地讀取檔案出現中文亂碼,查閱一個大神的部落格做一下記錄 import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.Buffered
nodejs簡單的讀取檔案寫存檔案
node.js 讀取檔案 fs 是 file-system 的簡寫,就是檔案系統的意思 在 Node 中如果想要進行檔案操作,就必須引入 fs 這個核心模組 在 fs 這個核心模組中,就提供了所有的檔案操作相關的 API 例如:fs.readFile 就是用
解決生成的saiku檔案讀取中文亂碼的問題
javax.ws.rs.WebApplicationException: org.saiku.service.util.exception.SaikuServiceException: org.saiku.service.util.exception.SaikuServiceException:
NODEJS常用功能(讀取檔案)
準備工作:下載fs檔案模組包,在cmd命令窗體中執行命令 npm install fs -g 安裝檔案操作模組 1.首先建立一個input.txt檔案,檔案內容如下 2.建立input.js檔案,用於讀取input.txt檔案的內容 //讀取檔案 var http = require(
Android讀取檔案時,由byte轉成String字串時出現亂碼
先看看出亂碼的程式碼 public static void getInfo(Context context) { try { FileInputStream
以位元組流讀取檔案時中文亂碼解決(二)
在上一節中說明了每次讀取一個位元組時亂碼解決方法,這一節我將闡述每次讀取多個位元組亂碼的解決。 問題: 中文字元佔2個位元組,非中文佔一個位元組 例如:"abc中國" 當我們以每四個位元組
Springboot--從配置檔案properties讀取字串亂碼
當讀取properties的內容為:發現中文亂碼。原因是由於預設讀取的為ISO-8859-1格式,因此需要切換為UTF-8。 主要方式有如下兩種 方式一 在你的application.properties中增加如下配置,避免中文亂碼 spring.http.en
位元組流讀取檔案防止亂碼
public static StringBuilder reader(String filePath) { try { File file = new File(filePath); if (file.isFile() &
C / C++ 讀取檔案出現亂碼解決方法
昨天用C語言寫了一下檔案讀取,發現讀出來的全是亂碼。這肯定是文字編碼不同導致的。 據我查證,C語言的漢字編碼方式是由你電腦決定的,所以需要看一下你電腦是什麼編碼,來確定你需要把文字檔案改成什麼編碼。 1.win+R,開啟執行框之後輸入c