工作中需要对文件或者文本进行编码处理防止乱码时,一开始想使用自带的**TextEncoder,**但是这个只能支持utf-8格式的
在uniapp社区有人提到使用npm包text-decoding
https://github.com/idiocc/text-decoding
这个是在这个开源库的基础上改的
https://github.com/inexorabletash/text-encoding
使用了下还不错,解决了我的需求,输入表情也不会乱码了
import { TextDecoder, TextEncoder } from 'text-decoding';
// gbk18030编码文本转16进制数据
export const gbk18030HexString = inputString => {
let uint8Array = new TextEncoder('gb18030', { NONSTANDARD_allowLegacyEncoding: true }).encode(inputString);
const hexString = Array.from(uint8Array, byte => byte.toString(16).padStart(2, '0')).join('');
return hexString.toUpperCase();
};
export const decodeData = buffer => {
let data = new TextDecoder('gb18030', { NONSTANDARD_allowLegacyEncoding: true }).decode(buffer);
return data;
};
看了下介绍,支持的编码挺多的