java不同编码之间进行转换,都需要使用unicode作为中转。以utf-8转gbk为例,示例代码如下: String t = "这是一个字符串aaa111" String utf8 = new String(t.getBytes( "UTF-8")) System.out.println(utf8) String unicode = new String(utf8.getBytes(),"UTF-8") System.out.println(unicode) String gbk = new String(unicode.getBytes("GBK")) System.out.println(gbk)npm install text-encoding --save
注1:编码出来的是unit8Array对象,解码的时候需要new Uint8Array(arr)一个字节数组生成
注2:encoding是解码类型,gbk填gb2312
var GB2312UnicodeConverter = {
ToUnicode: function (str) {
return escape(str).toLocaleLowerCase().replace(/%u/gi, '\\u')
}
, ToGB2312: function (str) {
return unescape(str.replace(/\\u/gi, '%u'))
}
}
用此方法试试。
个人觉得这个转码的工作最好还是在接收端做