nodejs截取字符串(node JS中处理json字符串中含有转义符号\ ,不能解析成json对象)

本文目录
- node JS中处理json字符串中含有转义符号\ ,不能解析成json对象
- 如何在某个页面用nodejs技术
- Node.js的Buffer与字符编码及转换
- nodejs怎样获取一个上传文件的MD5码
- nodejs怎么把字符串转
- nodejs去掉图片64编码前面部分
- nodejs 怎么获取post请求的json数据
node JS中处理json字符串中含有转义符号\ ,不能解析成json对象
使用JSON从后台向前台传输数据的时候,当数据本身含有一些特殊字符,会导致JSON数据的解析出错。
使用下面的方法对即将向前台输出的json字符串进行处理,可以解决键盘上能输入的所有特殊字符问题。
//当文本中含有如下特殊字符时,此方法可以成功处理,让其在前台被正确解析,注意:此法不能处理单引号
public static String stringToJson(String s) {
StringBuffer sb = new StringBuffer ();
for (int i=0; i《s.length(); i++) {
char c = s.charAt(i);
switch (c) {
case ’\"’:
sb.append("\\\"");
break;
// case ’\\’: //如果不处理单引号,可以释放此段代码,若结合下面的方法处理单引号就必须注释掉该段代码
// sb.append("\\\\");
// break;
case ’/’:
sb.append("\\/");
break;
case ’\b’: //退格
sb.append("\\b");
break;
case ’\f’: //走纸换页
sb.append("\\f");
break;
case ’\n’:
sb.append("\\n"); //换行
break;
case ’\r’: //回车
sb.append("\\r");
break;
case ’\t’: //横向跳格
sb.append("\\t");
break;
default:
sb.append(c);
}}
return sb.toString();
}
//注意,下面的方法是在把你的数据文本接入json数据字符串之前使用,预先对文本做处理后在接入JSON字符串
//处理文本中的单引号 和 斜杠
public static String StringDanYinToJSON(String ors) {
ors = ors == null ? "" : ors;
StringBuffer buffer = new StringBuffer(ors);
int i = 0;
while (i 《 buffer.length()) {
if (buffer.charAt(i) == ’\’’ || buffer.charAt(i) == ’\\’) {
buffer.insert(i, ’\\’);
i += 2;
} else {
i++;
}
}
return buffer.toString();
}
如何在某个页面用nodejs技术
一个网页的内容其实就是一段字符串,response.write()可以接受一个字符串作为参数,所以很明显只需要把一个网页的内容作为参数传递给response.write()即可。例如:
view plain copy
***隐藏网址***
***隐藏网址***
var html = ’《html》’
+’《head》’
+’《title》nodejs《/title》’
+’《/head》’
+’《body》’
+ ’hello world! 1234’
+’《/body》’
+’《/html》’;
res.writeHead(200,{’Content-Type’ : ’text/html’});
res.write(html);
res.end();
}).listen(8888);
- 在浏览器地址栏输入127.0.0.1:8888查看结果,打开控制台,可以发现网页的类容已经全部包含在浏览器中。
- 一个网页一般会包含css样式文件和javascript脚本文件,再上一个示例中没有这两个文件。现在可以添加简单的css和javascript文件查看效果:
***隐藏网址***
***隐藏网址***
var html = ’《html》’
+’《head》’
+’《title》nodejs《/title》’
+’《link rel="stylesheet" type="text/css" href="./bootstrap/css/bootstrap.min.css" /》’
+’《script type="text/javascript" src="./bootstrap/js/bootstrap.min.js"》《/script》’
+’《/head》’
+’《body》’
+ ’hello world!hello world! 1234’
+’《/body》’
+’《/html》’;
res.writeHead(200,{’Content-Type’ : ’text/html’});
res.write(html);
res.end();
}).listen(8888);
- 会发现css文件和javascript文件都没有被正确下载。这是因为这段代码中规定的’Content-Type’都是’text/html’类型,而且所有的response内容都相同,当然就看不到想要的效果。
- 我们知道css样式和javascript脚本有多种不同的引入方法,css样式可以使用外联样式、内部样式和内联样式,javascript可以使用外联和内部两种,既然外联不能正确显示,那么可以尝试其他方法。通过测试可以发现css内部样式和内联样式都可以在网页上看到效果,javascript同样。
***隐藏网址***
***隐藏网址***
var html = ’《html》’
+’《head》’
+’《title》nodejs《/title》’
+’《style type="text/css"》’
+’body{color:red;}’
+’《/style》’
+’《/head》’
+’《body》’
+ ’hello world! 1234’
+’《/body》’
+’《/html》’;
res.writeHead(200,{’Content-Type’ : ’text/html’});
res.write(html);
res.end();
}).listen(8888);
- 可以看到浏览器中的文字显示为红色。
- 但是这两种方式都不是现代web开发所提倡的。现代web开发提倡css样式和javascript使用外联的方式,以方便管理和重用。css文件和javascript文件都是静态文件,我们可以尝试建立一个简单的静态文件服务,这样就可以正确的在网页中使用外联文件了。
view plain copy
view plain copy
Node.js的Buffer与字符编码及转换
Buffer实例一般用于表示编码字符的序列,如UTF-8、UCS2、Base64或十六进制编码的数据。通过使用显式的字符编码就可以在Buffer实例与普通的JavaScript字符串之间进行相互转换。
Node.js目前支持的字符编码包括:
● ascii:仅支持7位ASCII数据。如果设置去掉高位的话,那么这种编码是非常快的。
● utf8:多字节编码的Unicode字符。许多网页和其他文档格式都使用UTF-8。
● utf16le:2或4个字节,小端序编码的Unicode字符,支持代理对(U+10000 ~ U+10FFFF)。
● ucs2:utf16le的别名。
● base64:Base64编码。
● latin1:一种把Buffer编码成一字节编码的字符串的方式。
● binary:latin1的别名。
● hex:将每个字节编码为两个十六进制字符。
nodejs怎样获取一个上传文件的MD5码
MD5中的MD代表Message Digest,就是信息摘要的意思,不过这个信息摘要不是信息内容的缩写,而是根据公开的MD5算法对原信息进行数学变换后得到的一个128位(bit)的特征码。
1、D5就是求字符串的md5,文件就是一个字符串;
2、前台目前就别考虑读文件内容了(大部分浏览器不行) 都让后台做;
可以直接看nodeclub源代码,如下:
var crypto = require(’crypto’);
exports.encrypt = function (str, secret) {
var cipher = crypto.createCipher(’aes192’, secret);
var enc = cipher.update(str, ’utf8’, ‘hex’);
enc += cipher.final(‘hex’);
return enc;
};
exports.decrypt = function (str, secret) {
var decipher = crypto.createDecipher(’aes192’, secret);
var dec = decipher.update(str, ’hex’, ‘utf8’);
dec += decipher.final(‘utf8’);
return dec;
};
exports.md5 = function (str) {
var md5sum = crypto.createHash(‘md5’);
md5sum.update(str);
str = md5sum.digest(‘hex’);
return str;
};
exports.randomString = function (size) {
size = size || 6;
var code_string = ’ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789’;
var max_num = code_string.length + 1;
var new_pass = ’’;
while (size 》 0) {
new_pass += code_string.charAt(Math.floor(Math.random() * max_num));
size–;
}
return new_pass;
};
nodejs怎么把字符串转
因为nodejs中没有支持GBK编码,需要使用iconv转换成GBK后,以“binary”形式转换成string
var iconv = require("iconv-lite");
var str="搞定了锟斤拷";
var rawStr = iconv.encode(str, ’gbk’).toString(’binary’);
nodejs去掉图片64编码前面部分
读取图片。
1、读取图片文件并将其转换为Buffer对象。
2、将Buffer对象转换为字符串,并使用正则表达式去掉前面的编码部分。
3、将去掉前面部分的Base64编码字符串转换为Buffer对象。
nodejs 怎么获取post请求的json数据
前端传给服务器的只是json 格式的字符串,使用json_decode,
mixed json_decode ( string $json )
var_dump(json_decode($json));
var_dump(json_decode($json, true));
如果不带参数,则返回为对象
带上true时,返回数组
foreach($ARR as $k=》$v){
echo ’key=’.$k.’;value=’.$v;
}
单独处理每个key 和对应的value就好

更多文章:
知名女星孙侨璐于跨年夜,心梗猝死,年仅25岁!一一一写给年轻人?1月2日演员孙侨潞离世,说好的来日方长转眼就是别离
2026年10月15日 10:40
avantage怎么设置为中文(Avantage安装丢失GIT)
2026年10月15日 03:00
activex控件未注册怎么办(登陆视频监控网页时提示activex控件未注册,怎么解决)
2026年10月14日 20:30






