一、GB2312和GBK编码转换器
GB2312和GBK都是常见的中文字符集编码,但因为其编码方式不同,在一些应用场景中需要进行转换。因此,我们可以开发一个GB2312和GBK编码转换器来满足这种需求。
function gb2312ToGBK(str){ var gb2312 = unescape(str.replace(/\\u/g,'%u')); var re = /%([0-9A-F]{2})([0-9A-F]{2})/g; var rs = gb2312.replace(re, function(match, p1, p2) { return String.fromCharCode(parseInt(p1+ p2, 16)+0x8080); }); return rs; } function gbkToGB2312(str){ var gbk = unescape(str.replace(/\\u/g, '%u')); var re = /%([0-9A-F]{2})([0-9A-F]{2})/g; var rs = gbk.replace(re, function(match, p1, p2) { return String.fromCharCode(parseInt(p1+ p2, 16)-0x8080); }); return rs; }
二、GBK编码转换为汉字JS
在前端开发中,有时候我们需要将GBK编码的数据转换为汉字以方便用户查阅。我们可以通过以下代码实现:
function gbkToHanzi(gbk){ var byteArray = []; for (var i = 0; i < gbk.length; i++) { var code = gbk.charCodeAt(i); if ((code >= 0x81 && code <= 0xfe) || (code >= 0x40 && code <= 0x7e)){ byteArray.push(code); } else { byteArray.push(gbk.charCodeAt(i)); } } return String.fromCharCode.apply(null, byteArray); }
三、GBK编码转换表
GBK编码是双字节编码,它包含了对汉字的完整支持,其编码表也相对比较庞大。以下为GB2312和GBK编码表的对应关系:
0100-01A0(包括8140-FEFE内的全部) : GB2312 FE3B-FE3E;FE40-FE4F;FE50-FE5D;FE5E-FE5F : GB2312 FE10-FE19;FE30-FE52;FE54-FE61;FE62-FE66;/u : MS Windows (默认下) 4E00-9FA0 : GB2312,GBK,Unicode FF01-FF5E;FFE0-FFE6 : MS Windows (默认下)
四、GBK编码转换为汉字APP
在移动设备上,我们可以开发一个GBK编码转换为汉字的APP来满足用户的需求。以下为一个简单的APP代码示例:
GBK编码转换为汉字APP <script> function gbkToHanzi(gbk){ var byteArray = []; for (var i = 0; i < gbk.length; i++) { var code = gbk.charCodeAt(i); if ((code >= 0x81 && code <= 0xfe) || (code >= 0x40 && code <= 0x7e)){ byteArray.push(code); } else { byteArray.push(gbk.charCodeAt(i)); } } return String.fromCharCode.apply(null, byteArray); } function convert(){ var gbk = document.getElementById('gbk').value; var hanzi = gbkToHanzi(gbk); document.getElementById('hanzi').value = hanzi; } </script> <input type="text" id="gbk">
<input type="text" id="hanzi" readonly>