我尝试使用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控制台会进行一些操作以将其显示为字符串。我想做同样的操作。
答案 0 :(得分:0)
我使用以下代码将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();