『壹』 nodejs中使用$.get 获取html出现中文乱码
npm install -g nodegrass //安装此模块使用
var gs = require('nodegrass');
gs.get('http://www.jd.com', function(data){
console.log(data);//将data输出即使中文
}, 'gbk').on('error',funtion(err){
console.log(err);
});
可以查查nodegrass的说明 https://github.com/scottkiss/nodegrass
『贰』 vscode已经按正常程序安装,可是不论运行什么js代码就输出这些玩意如下图,运行html正常,求教,急!
报错信息是vscode无法识别node。
这是由于先打开的vscode后安装nodejs,vscode只在启动时读取环境变量
确保nodejs添加到环境变量,然后重启vscode就可以了
『叁』 nodejs中ejs宓膖itle乱码怎么办
在ejs模板里添加上面那句话没问题,但如果引用某个js,这个js里alert中文,那么这个中文就变成乱码了,这是怎么回事呢?页面上设置了utf-8编码的,引入的js文件也是utf-8格式的
『肆』 nodejs上传文件,文件内容中文乱码
前端上传的是复gbk, 你后端当成utf8, 当然制这样了.
一种是你前端规定只能上传utf8文本文件;
还有一种你知道前端大部分都是gbk, 后端做gbk到utf8的转化. (我那个时候nodejs似乎还没内置gbk解码器, 现在不知道了)
『伍』 nodejs运行会出现乱码,该怎么解决
nodejs乱码处理
1.处理回显乱码
res.write("<head><meta charset='utf-8'></head>");
2.处理传参乱码
querystring.escape(str)
escape可使传入的字符串进行编码
querystring.escape
querystring.escape("name=慕白");
/*
return:
'name%3D%E6%85%95%E7%99%BD'
*/
querystring.unescape(str)
unescape方法可将含有%的字符串进行解码
querystring.unescape
querystring.unescape('name%3D%E6%85%95%E7%99%BD');
/*
return:
'name=慕白'
*/
3.与编码相关的代码
var encoding = require('encoding');var iconv = require('iconv-lite');
console.log(encoding.convert("%E7%9A%84%E5%A3%AB%E9%80%9F%E9%80%92", "utf-8"));
console.log(iconv.decode('%E7%9A%84%E5%A3%AB%E9%80%9F%E9%80%92', 'utf-8'));
『陆』 如何使用Node.js处理前端代码文件的编码问题
使用 NodeJS 编写前端工具时,操作得最多的是文本文件,因此也就涉及到了文件编码的处理问题。我们常用的文本编码有 UTF8 和 GBK 两种,并且 UTF8 文件还可能带有 BOM。在读取不同编码的文本文件时,需要将文件内容转换为 JS 使用的 UTF8 编码字符串后才能正常处理。
1、BOM 的移除
BOM 用于标记一个文本文件使用 Unicode 编码,其本身是一个 Unicode 字符("uFEFF"),位于文本文件头部。在不同的 Unicode 编码下,BOM 字符对应的二进制字节如下:
3、单字节编码
有时候,我们无法预知需要读取的文件采用哪种编码,因此也就无法指定正确的编码。比如我们要处理的某些 CSS 文件中,有的用 GBK 编码,有的用 UTF8 编码。虽然可以一定程度可以根据文件的字节内容猜测出文本编码,但这里要介绍的是有些局限,但是要简单得多的一种技术。
首先我们知道,如果一个文本文件只包含英文字符,比如 Hello World,那无论用 GBK 编码或是 UTF8 编码读取这个文件都是没问题的。这是因为在这些编码下,ASCII0~128 范围内字符都使用相同的单字节编码。
反过来讲,即使一个文本文件中有中文等字符,如果我们需要处理的字符仅在 ASCII0~128 范围内,比如除了注释和字符串以外的JS代码,我们就可以统一使用单字节编码来读取文件,不用关心文件的实际编码是 GBK 还是 UTF8。