小米手环7 表盘开发问题
hmFS.read读取到ArrayBuffer中的内容如何转换成string?
孩子整不明白了,求救。问题代码如下:
const language = hmSetting.getLanguage();
let fileId, filename, errRd;
switch (language) {
case 0:
filename = "voiceoversc.txt";
break;
case 1:
filename = "voiceovertc.txt";
break;
case 2:
filename = "voiceoveren.txt"; //3个文件均采用utf-8编码
break;
}
fileId = hmFS.open(filename, hmFS.O_RDONLY | hmFS.O_CREAT);
const [fs_stat, err] = hmFS.stat_asset(filename);
const { size } = fs_stat;
let res, arr = new Uint8Array(new ArrayBuffer(size)), voiceover = [];
if (err == 0) {
errRd = hmFS.read(fileId, arr.buffer, 0, size);
hmFS.close(fileId);
if (errRd == 0) {
res = decodeURIComponent(escape(String.fromCharCode.apply(null, arr)));// 模拟器显示正常 刷入米环7后没有正确解码出内容
// String.fromCharCode.apply(null, arr), escape(String.fromCharCode.apply(null, arr)), decodeURIComponent(String.fromCharCode.apply(null, arr))均无效
for (let i = 0, tmp = ""; i < res.length; i++) {
if (res[i] != "\n") { // voiceover__.txt must use LF line ending!
tmp += res[i];
} else {
voiceover.push(tmp);
tmp = "";
}
}
}
}
hmFS.read读取到ArrayBuffer中的内容如何转换成string?
孩子整不明白了,求救。问题代码如下:
const language = hmSetting.getLanguage();
let fileId, filename, errRd;
switch (language) {
case 0:
filename = "voiceoversc.txt";
break;
case 1:
filename = "voiceovertc.txt";
break;
case 2:
filename = "voiceoveren.txt"; //3个文件均采用utf-8编码
break;
}
fileId = hmFS.open(filename, hmFS.O_RDONLY | hmFS.O_CREAT);
const [fs_stat, err] = hmFS.stat_asset(filename);
const { size } = fs_stat;
let res, arr = new Uint8Array(new ArrayBuffer(size)), voiceover = [];
if (err == 0) {
errRd = hmFS.read(fileId, arr.buffer, 0, size);
hmFS.close(fileId);
if (errRd == 0) {
res = decodeURIComponent(escape(String.fromCharCode.apply(null, arr)));// 模拟器显示正常 刷入米环7后没有正确解码出内容
// String.fromCharCode.apply(null, arr), escape(String.fromCharCode.apply(null, arr)), decodeURIComponent(String.fromCharCode.apply(null, arr))均无效
for (let i = 0, tmp = ""; i < res.length; i++) {
if (res[i] != "\n") { // voiceover__.txt must use LF line ending!
tmp += res[i];
} else {
voiceover.push(tmp);
tmp = "";
}
}
}
}
