CNode

node.js gbk编码的字符串 为嘛不能拼接中文 或者 indexOf("中文“) 查找

问答
XXuCe发布于11 年前最后回复9 年前9 回复6296 浏览0 收藏

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)

J
jiazurongyu2015#1·9 年前

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

P
pinxue#2·9 年前

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

D
DevinXian#3·11 年前

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

X
XuCe#4·11 年前
引用 DevinXian你这个模块没用过,不过貌似是buffer?

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

X
XuCe#6·11 年前
引用 i5tingsee https://github.com/i5ting/import csv/blob/master/index.js

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

D
daileimail#8·11 年前

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

H
hanyuzhou2006#9·11 年前

总觉得先转后合并有问题

参与回复
登录后即可参与回复。登录