最近接触到短信相关的功能,发现短信的编码方式基本都是UCS2,所以需要进行编码格式的转换。
1.UTF8转UCS2
function UTF8ToUCS2(src: string) {
let bytes = new Buffer(src.length / 2);
for (let i = 0; i < src.length; i += 2) {
bytes[i / 2] = parseInt(src.substring(i, i + 2), 16);
}
let reValue;
try {
reValue = bytes.swap16().toString("utf16le");
} catch (err) {
console.log(err);
}
return reValue || "";
}
2.UTF8字符串转成UCS2编码的Buffer字符串
Buffer.from(new Buffer(str, "ucs2").swap16().toString("hex")).toString();