node.js 中文编码问题
2011-12-06 23:03
246 查看
node.js不支持GBK编码,只支持UTF8。Windows系统上默认保存的文件都是GBK编码,没有指定编码的html,浏览器也是使用GBK编码解析。为了让http请求和相应都支持中文,故说有地方均使用UTF8。
使用了fs读取html(参照API
File System),可以让html代码不用写在javascript中。修改后的javascript代码如下(使用UTF8格式保存为example5.js):
使用了fs读取html(参照API
File System),可以让html代码不用写在javascript中。修改后的javascript代码如下(使用UTF8格式保存为example5.js):
var http = require('http'); var server = http.createServer(); var querystring = require('querystring'); var fs = require('fs'); var firstPage = function(res){ res.writeHead(200, {'Content-Type': 'text/html'}); var html = fs.readFileSync('login.html'); res.end(html); } var login = function(req, res) { var info =''; req.addListener('data', function(chunk){ info += chunk; }) .addListener('end', function(){ info = querystring.parse(info); res.setHeader('content-type','text/html; charset=UTF-8');//响应编码,如果是html,写在head中也可以 if(info.name == '张' && info.pwd =='1'){ res.end('login success 成功 ' + info.name); }else{ res.end('login failed 失败 ' + info.name); } }) } var requestFunction = function (req, res){ req.setEncoding('utf8');//请求编码 if(req.url == '/'){ return firstPage(res); } if(req.url == '/login'){ if (req.method != 'POST'){ return; } return login(req, res) } } server.on('request',requestFunction); server.listen(1337, "127.0.0.1"); console.log('Server running at ' target='_blank'>http://127.0.0.1:1337/');[/code] 在同目录下添加一个login.html 文件(使用UTF8格式保存)<html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <form action="/login" method="post"> 用户名:<input type="text" name="name"> </br> 密码:<input type="password" name="pwd"></br> <input type="submit" value="登录"> </form> </body></html>
在命令行中执行 node example5.js
在地址栏中输入 http://127.0.0.1:1337/
输入 用户名 张 密码 1 ,点击登录
输入 用户名 张 密码 2 ,点击登录
编码问题解决
为什么服务端的js文件也要保存为UTF8格式,因为node.js是对原文件直接解释的语言,如果是java就不需要,设一个过滤器就OK了。
相关文章推荐
- 使用Node.js处理前端代码文件的编码问题
- ajax提交中文编码问题(同时给出几个js与php编码方式)
- 一:Js的Url中传递中文参数乱码问题,重点:encodeURI编码,decodeURI解码:
- Node.js中文乱码问题解决
- js php 中文互相传输 编码问题
- 帮助解决网页和JS文件中的中文编码问题的小工具
- 关于js中用base64编码处理中文的问题
- js编码问题(中文乱码)
- node.js 学习笔记(一) 解决node里中文乱码问题
- 帮助解决网页和JS文件中的中文编码问题的小工具
- Windows下Node.js使用child_process模块调用系统命令的编码问题
- Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)
- IE8下json.js 中文编码问题
- 分享一个 jsPDF的简单使用以及中文编码问题的解决
- MyEclipse中 js中文乱码问题 VS MyEclipse默认编码
- 关于php与js传递cookie中文值编码问题
- Base64 JAVA后台编码与JS前台解码(解决中文乱码问题)
- node.js jsdom gb系列网页中文乱码问题解决方案
- js读取服务器Cookies时候中文编码问题
- 编码问题(.java/.jsp/.js等文件的中文乱码)