node.js gbk编码的字符串 为嘛不能拼接中文 或者 indexOf("中文“) 查找
发布于 8 年前 作者 XuCe 5127 次浏览 来自 问答

function GetHtml(url){ //获取编码是gbk的页面源码 nodegrass.get(_host+url,function(data,status,headers){ var index=data.indexOf(“中文”); //结果是-1 },‘gbk’).on(‘error’, function(e) { console.log("Got error: " + e.message); }); } 求教为嘛 我输出的是 中文 但是 我用indexOf 去找 结果是-1

QQ截图20151112164433.png

9 回复

你这个模块没用过,不过貌似是buffer?

@DevinXian 不是的 自动转过了 下面这段是之前写的 最原始的代码 你可以试试看 QQ图片20151112143310.png

@i5ting 我知道怎么转编码 但是转出来的 gbk字符串 不能进行操作

总觉得先转后合并有问题

中文是不能直接拼的 参考代码: var chunks = []; var size = 0; res.on(‘data’, function (chunk) { chunks.push(chunk); size += chunk.length; });

var index没有被用到。indexOf是查找字符串所在的位置,这里所以是-1

http://www.zcfy.cc/article/what-every-javascript-developer-should-know-about-unicode-1303.html 对于你的问题:注意JavaScript中大多数字符串方法都不能识别Unicode:比如myString.indexOf()、myString.slice()等。

回到顶部