您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關node.js如何解決客戶端請求數據里面中文亂碼的事件,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
node.js解決客戶端請求數據里面中文亂碼的事件
例如代碼:
var http = require('http'); var server = http.createServer(); server.on('request',function(req,res){ // res.end("hello world"); res.end("你好 世界"); }); server.listen(3000,function(){ console.log("Server is running"); });
原因:
在服務端默認發送的數據,其實是UFT8編碼內容
但是瀏覽器不知道你是UFT8編碼內容
瀏覽器在不知道服務器響應內容的編碼情況下會按照當前操作系統的默認編碼去執行
中文操作系統默認是GBK
解決方法:正確是告訴瀏覽器我給你發送的是什么類型的數據res.setHeader('Content-Type','text/plain;charset=utf-8');
內容類型,注意連接符不要寫錯,utf-8也不要亂寫。在http協議中,content-Type就是用來告知對方我給你發送的數據內容是什么類型,然后后面就是緊跟著寫上類型
var http = require('http'); var server = http.createServer(); server.on('request',function(req,res){ // res.end("hello world"); res.setHeader('Content-Type','text/plain;charset=utf-8'); res.end("你好 世界"); }); server.listen(3000,function(){ console.log("Server is running"); });
注意這里的類型有很多種
var http = require('http'); var server = http.createServer(); server.on('request',function(req,res){ if(req.url==='/plain'){ res.setHeader('Content-Type','text/plain;charset=utf-8'); res.end("你好 世界"); }else if(req.url==='/html'){ res.setHeader('Content-Type','text/html;charset=utf-8'); res.end("<h2>你好 世界<br/> hello world</h2>"); } }); server.listen(3000,function(){ console.log("Server is running"); });
根據不同請求路徑返回不同的類型Content-Type格式
關于“node.js如何解決客戶端請求數據里面中文亂碼的事件”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。