Javascript can';在从string.fromCharCode创建的字符串中找不到

Javascript can';在从string.fromCharCode创建的字符串中找不到,javascript,string,indexof,jszip,Javascript,String,Indexof,Jszip,我正在尝试使用JSZip从apk解析AndroidManifest.xml, 我得到了一个Uint8Array,并使用以下代码将其转换为字符串: var zip = new JSZip(fileBlobAsByteArray); var androidCompress = zip.files["AndroidManifest.xml"]; var androidNonCompress = androidCompress._data.getContent(); var androidText =

我正在尝试使用JSZip从apk解析
AndroidManifest.xml

我得到了一个Uint8Array,并使用以下代码将其转换为字符串:

var zip = new JSZip(fileBlobAsByteArray);
var androidCompress = zip.files["AndroidManifest.xml"];
var androidNonCompress = androidCompress._data.getContent();
var androidText = String.fromCharCode.apply(null, androidNonCompress);
var packageName = androidText.toLowerCase().replace(/ /g,'').indexOf('package');
我尝试使用toLowerCase并删除所有空白

我得到一个字符串,我可以在控制台中看到它的内容,但是当我使用indexOf搜索字符串中的单词时,它总是返回-1


我想问题在于,输出可能不是一个常规字符串,chrome控制台会进行一些操作以将其显示为字符串。我想做同样的操作。

我使用以下代码将Uint8Array转换为可搜索字符串

// Reading to content to a searchable string
var packageNameArray = [];
var textArray = String(androidNonCompress).split(',');
for (var i = 0, len = textArray.length; i < len; i++) {
    if (textArray[i] !== 0) {
        packageNameArray.push(textArray[i]);
    }
}

var searchableText = String.fromCharCode.apply(null, packageNameArray).toString().toLowerCase();
//将内容读取为可搜索字符串
var packageNameArray=[];
var textary=String(AndroidNoncPress).split(',');
对于(变量i=0,len=textArray.length;i
是否要使用androidText.ToLowerCase.replace?或者您想要小写()。replace@JohnBoker我编辑了这个问题这不是真的可以解决的,如果字符串包含
package
,那么
indexOf
方法应该可以工作,而且因为我们不知道字符串是什么样子,所以没有办法回答这个问题?添加到adeneo的评论中,你需要逆向工作,要求你不能做的具体步骤。您是否检查了
androidText
的值,以查看它是否包含子字符串
“package”
?您是否检查了
androidnonpress
是否是您期望的值?你说你正在做一些日志记录;您是如何/在哪里做的,输出是什么?@adeneo包名总是出现在AndroidManifest.xml上,我也可以在控制台上看到它