t-comm
Version:
专业、稳定、纯粹的工具库
24 lines (22 loc) • 748 B
JavaScript
// 更健壮的转换函数,支持多种编码
function ab2str(buffer, encoding) {
if (encoding === void 0) {
encoding = 'utf-8';
}
if (typeof TextDecoder !== 'undefined') {
return new TextDecoder(encoding).decode(new Uint8Array(buffer));
}
// 备选方案
var byteArray = new Uint8Array(buffer);
var result = '';
for (var i = 0; i < byteArray.length; i++) {
result += String.fromCharCode(byteArray[i]);
}
// 如果是 GBK 编码,可能需要特殊处理
if (encoding.toLowerCase() === 'gbk' || encoding.toLowerCase() === 'gb2312') {
// 这里可以集成第三方 GBK 解码库
console.warn('GBK编码可能需要特殊处理,建议服务器使用UTF-8');
}
return result;
}
export { ab2str };