我需要在JavaScript中像iconv() php函数一样将UTF-8字符串转换为UTF-16LE。
例如:
iconv("UTF-8", "UTF-16LE", $string);
输出应该像这样:
我发现了这个函数来解码UTF-16LE,它可以正常工作,但我不知道如何进行编码。49 00 6e 00 64 00 65 00 78 00
function decodeUTF16LE( binaryStr ) {
var cp = [];
for( var i = 0; i < binaryStr.length; i+=2) {
cp.push(
binaryStr.charCodeAt(i) |
( binaryStr.charCodeAt(i+1) << 8 )
);
}
return String.fromCharCode.apply( String, cp );
}
结论是创建一个可下载的二进制文件。
代码:
function download(filename, text) {
var a = window.document.createElement('a');
var byteArray = new Uint8Array(text.length);
for (var i = 0; i < text.length; i++) {
byteArray[i] = text.charCodeAt(i) & 0xff;
}
a.href = window.URL.createObjectURL(new Blob([byteArray.buffer], {'type': 'application/type'}));
a.download = filename;
// Append anchor to body.
document.body.appendChild(a);
a.click();
// Remove anchor from body
document.body.removeChild(a);
}