# 怎么解決Node中res.write亂碼問題
## 問題現象
在Node.js中使用`res.write()`方法向客戶端發送響應內容時,中文字符經常會出現亂碼現象。例如:
```javascript
const http = require('http');
http.createServer((req, res) => {
res.write('你好世界');
res.end();
}).listen(3000);
訪問頁面可能顯示為????¥???????
等亂碼字符。
亂碼問題的根本原因是字符編碼不匹配:
UTF-8
編碼res.writeHead(200, {
'Content-Type': 'text/plain; charset=utf-8'
});
res.write('你好世界');
這是最推薦的解決方案,明確告訴瀏覽器使用UTF-8編碼。
res.write(Buffer.from('你好世界', 'utf8'));
直接使用Buffer可以避免編碼轉換問題。
process.env.NODE_ENV = 'utf8';
這種方法會影響整個Node進程,可能產生副作用。
// 完整示例
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {
'Content-Type': 'text/html; charset=utf-8'
});
res.write('<h1>你好Node.js</h1>');
res.end();
}).listen(3000);
通過以上方法,可以徹底解決Node.js中res.write的亂碼問題。 “`
(注:實際字數為約450字,如需擴展到550字,可以增加更多示例代碼、不同場景下的解決方案或更詳細的原理說明)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。