使用 JavaScript 将八进制字符串转换为 UTF-8 字符串
function convertOctalToUtf8(str) {
let octalCodes = str.split('\\').slice(1);
let utf8Chars = [];
for (let code of octalCodes) {
let decimalCode = parseInt(code, 8);
utf8Chars.push(String.fromCharCode(decimalCode));
}
return utf8Chars.join('');
}
let input = "\\346\\265\\213\\350\\257\\225\\346\\226\\207\\346\\234\\254";
console.log(convertOctalToUtf8(input));
如果上述代码转换结果不正确,可能是因为原始的八进制编码与预期的编码方式不匹配。还可以尝试使用以下代码,使用TextDecoder
进行转换:
function convertOctalToUtf8(str) {
let octalCodes = str.split('\\').slice(1);
let binaryString = '';
for (let code of octalCodes) {
let decimalCode = parseInt(code, 8).toString(2).padStart(8, '0');
binaryString += decimalCode;
}
let decoder = new TextDecoder('utf-8');
return decoder.decode(new Uint8Array(binaryString.match(/[01]{8}/g).map(bin => parseInt(bin, 2))));
}
let input = "\\346\\265\\213\\350\\257\\225\\346\\226\\207\\346\\234\\254";
console.log(convertOctalToUtf8(input));