function GB2312UTF8(){
this.Dig2Dec=function(s){
var retV = 0;
if(s.length == 4){
for(var i = 0; i < 4; i ++){
retV += eval(s.charAt(i)) * Math.pow(2, 3 - i);
}
return retV;
}
return -1;
}
this.Hex2Utf8=function(s){
var retS = "";
var tempS = "";
var ss = "";
if(s.length == 16){
tempS = "1110" + s.substring(0, 4);
tempS += "10" + s.substring(4, 10);
tempS += "10" + s.substring(10,16);
var sss = "0123456789ABCDEF";
for(var i = 0; i < 3; i ++){
retS += "%";
ss = tempS.substring(i * 8, (eval(i)+1)*8);
retS += sss.charAt(this.Dig2Dec(ss.substring(0,4)));
retS += sss.charAt(this.Dig2Dec(ss.substring(4,8)));
}
return retS;
}
return "";
}
this.Dec2Dig=function(n1){
var s = "";
var n2 = 0;
for(var i = 0; i < 4; i++){
n2 = Math.pow(2,3 - i);
if(n1 >= n2){
s += '1';
n1 = n1 - n2;
}
else
s += '0';
}
return s;
}
this.Str2Hex=function(s){
var c = "";
var n;
var ss = "0123456789ABCDEF";
var digS = "";
for(var i = 0; i < s.length; i ++){
c = s.charAt(i);
n = ss.indexOf(c);
digS += this.Dec2Dig(eval(n));
}
return digS;
}
this.Gb2312ToUtf8=function(s1){
var s = escape(s1);
var sa = s.split("%");
var retV ="";
if(sa[0] != ""){
retV = sa[0];
}
for(var i = 1; i < sa.length; i ++){
if(sa[i].substring(0,1) == "u"){
retV += this.Hex2Utf8(this.Str2Hex(sa[i].substring(1,5)));
if(sa[i].length){
retV += sa[i].substring(5);
}
}
else{
retV += unescape("%" + sa[i]);
if(sa[i].length){
retV += sa[i].substring(5);
}
}
}
return retV;
}
this.Utf8ToGb2312=function(str1){
var substr = "";
var a = "";
var b = "";
var c = "";
var i = -1;
i = str1.indexOf("%");
if(i==-1){
return str1;
}
while(i!= -1){
if(i<3){
substr = substr + str1.substr(0,i-1);
str1 = str1.substr(i+1,str1.length-i);
a = str1.substr(0,2);
str1 = str1.substr(2,str1.length - 2);
if(parseInt("0x" + a) & 0x80 == 0){
substr = substr + String.fromCharCode(parseInt("0x" + a));
}
else if(parseInt("0x" + a) & 0xE0 == 0xC0){ //two byte
b = str1.substr(1,2);
str1 = str1.substr(3,str1.length - 3);
var widechar = (parseInt("0x" + a) & 0x1F) << 6;
widechar = widechar | (parseInt("0x" + b) & 0x3F);
substr = substr + String.fromCharCode(widechar);
}
else{
b = str1.substr(1,2);
str1 = str1.substr(3,str1.length - 3);
c = str1.substr(1,2);
str1 = str1.substr(3,str1.length - 3);
var widechar = (parseInt("0x" + a) & 0x0F) << 12;
widechar = widechar | ((parseInt("0x" + b) & 0x3F) << 6);
widechar = widechar | (parseInt("0x" + c) & 0x3F);
substr = substr + String.fromCharCode(widechar);
}
}
else {
substr = substr + str1.substring(0,i);
str1= str1.substring(i);
}
i = str1.indexOf("%");
}
return substr+str1;
}
}
分享到:
相关推荐
博文链接 :https://blog.csdn.net/weixin_41312919/article/details/121627711
包含GBK和UTF16字符集的对照表,用于将GBK字节流和UTF字符串之间的互相转换。
从从文本码表创建码表数组, 数组所以为 gbk 码,数组值为 unicode
1。UTF8编码转gbk编码 2。GBK转utf8编码 3。绿色,简单,源代码
本机字符(utf-8/gbk)转换成ASCII_JS版 中文国际化资源化
前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...
例:中 D6D0 国 B9FA http://www.mytju.com/classcode/tools/encode_gb2312.asp 开发小程序蓝牙时,发送中文,硬件蓝牙要求gbk2312转码,我费了九牛二虎之力,终于找到简单有效的方法
使用javascprit将字符转为GBK编码格式
用来对代码文件格式进行转换,支持GB2312、GBK与UTF-8编码进行互换功能,资源来源于网络,请使用者遵守相关法律。
方法一: 代码如下:function gb2utf8(data){ var glbEncode = []; gb2utf8_data = data; execScript(“gb2utf8_data = MidB(gb2utf8_data, 1)”, “VBScript”); var t=escape(gb2utf8_data).replace(/%u/g,””)....
万能转码函数,解决中文字符转码问题、GBK转utf8问题,utf8转gbk等等各种转码、乱码问题。
问题 小程序接收蓝牙设备发送的信息,但是蓝牙设备发送的是gb2312...// 导入gbk转utf-8对照表 import Decoder from "../../utils/Decoder.js" 参考地址:https://blog.csdn.net/v_loading/article/details/118154963
网站模板编码转换小助手是一款小巧的编码转换工具,快来... 软件功能 本软件可以将网站模板编码批量由UTF8转换成GBK模式或者有GBK模式批量转换为UTF8模式,目前支持.htm、.html、.php、.js、.css等常用格式编码转换。
1、支持帝国cms7.5版本,GBK、UTF编码 2、采用框架式开发 3、响应式布局,兼容多终端分辨率,包含:1920*1080,1400*900,1366*768,1024*768,1024*1366,768*1024,414*736,375*667等分辨率 4、兼容桌面浏览器: ...
主要介绍了JavaScript实现的GBK、UTF8字符串实际长度计算函数,需要的朋友可以参考下
1、以GBK转UTF-8为例说明,UTF-8转GBK同理 2、上传convert目录至Destoon系统根目录 3、如果是非Windows服务器,需要设置convert目录内GBK和UTF-8目录可写权限 4、上传需要转换的文件至convert/GBK目录 5、访问 你的...
主要介绍了用AJAX实现,多个不同编码的项目(GBK,UTF8)互相通过 POST/GET 汇总表单数据。最终实现 使用同一个页面接收 不同编码的 表单(GBK,UTF8),特别适合 JS 采集项目,需要的朋友可以参考下
1、以GBK转UTF-8为例说明,UTF-8转GBK同理 2、上传convert目录至Destoon系统根目录 3、如果是非Windows服务器,需要设置convert目录内GBK和UTF-8目录可写权限 4、上传需要转换的文件至convert/GBK目录 5、访问 你的...
7.2 GBK UTF8 BIG5 V3修正重复奖励问题 插件简介:记录用户广告点击记录,自动给用户加积分。针对图片链接或文字链接广告。对GG等js里输出frame广告无效。可用于广告效果记录或用于鼓励用户点广告给用户加积分。 ...