`
vtrtbb
  • 浏览: 361540 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

js GBK转utf8

阅读更多

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;
	}
}

分享到:
评论

相关推荐

    小程序GBK转UTF-8js

    博文链接 :https://blog.csdn.net/weixin_41312919/article/details/121627711

    GBK转UTF8(模版格式转换)

    标题提到的“GBK转UTF8(模版格式转换)”应该是一款专门用于进行GBK编码到UTF-8编码转换的工具。其中的"GB2UTF8.exe"很可能是一个可执行程序,用户通过运行这个程序,可以选择需要转换的文件或文件夹,实现批量转换...

    GBK转UTF8工具 网页编码 互转工具

    "GBK转UTF8工具 网页编码 互转工具"是一个专门用于处理这两种编码转换的软件,它的功能主要包括: 1. **GBK到UTF-8的转换**:该工具能够将使用GBK编码的文本或文件(如HTML、CSS、JavaScript等网页文件)转换为UTF-...

    网页文件批量gbk转UTF8

    网页文件批量GBK转UTF8是一个针对网页文件编码的转换工具,它主要解决的是在处理不同编码格式的网页文件时可能出现的乱码问题。GBK(Great Chinese Character Set)是中国大陆广泛使用的汉字编码标准,而UTF-8是国际...

    GBK和UTF-16编码的转换接口

    包含GBK和UTF16字符集的对照表,用于将GBK字节流和UTF字符串之间的互相转换。

    gbk汉字转utf8编码的转换函数,亲测有用

    def gbk_to_utf8(gbk_string): utf8_string = gbk_string.encode('gbk').decode('utf-8') return utf8_string ``` 这段代码首先使用`encode`方法将GBK编码的字符串转为字节流,然后再用`decode`方法将字节流解码...

    gbk网页模板转utf-8的绿色小工具

    标题“gbk网页模板转utf-8的绿色小工具”所涉及的知识点主要在于网页模板的字符编码转换。GBK到UTF-8的转换通常是为了使网页在全球范围内具有更好的兼容性和显示一致性,因为UTF-8被更多浏览器和服务器支持,尤其是...

    webscoket二进制GBK转UTF-8 码表 js数组文件

    从从文本码表创建码表数组, 数组所以为 gbk 码,数组值为 unicode

    UTF8GBK互转换工具

    GBK转utf8编码”,是指这个工具提供了两个主要功能:将使用UTF-8编码的文本转换为GBK编码,以及将GBK编码的文本转换为UTF-8编码。这种转换在处理不同来源的数据时非常有用,比如从一个使用GBK编码的数据库中提取数据...

    小程序gbk转unicode

    例如,`GbkTextEncoder.js`和`GbkTextEncoder.min.js`这两个文件很可能就是用来实现GBK到UTF-8(一种Unicode编码)转换的工具。在这些文件中,可能包含以下步骤: 1. **读取字节数组**:首先,从输入的GBK编码数据...

    js实现GBK编码,避免默认utf-8编码

    前端页面通过ajax发送请求,参数都是默认使用utf-8编码格式对参数进行url编码,这样的后果就是,当后台页面如果使用gbk编码的话,会出现乱码的情况,然后网上找到一个大神写的gbk.js. 但是里面没有做出详细介绍,这里...

    本机字符(utf-8/gbk)转换成ASCII_JS版.html

    本机字符(utf-8/gbk)转换成ASCII_JS版 中文国际化资源化

    GBK与UTF8编码批量转码工具

    "GBK与UTF8编码批量转码工具"就是为了解决不同编码格式之间转换问题而设计的一款实用软件。这款工具能够帮助用户快速有效地将大量文件从GBK编码转换为UTF8编码,或者反之,尤其对于像Discuz!这样的论坛模板调整来说...

    GB转UTF8字符工具

    在本案例中,我们关注的焦点是“GB转UTF8字符工具”,这是一款用于转换代码文件编码的实用程序,主要功能是将GB2312、GBK编码的文件转换为UTF-8编码,或者反过来,将UTF-8编码的文件转换为GB2312或GBK编码。...

    javascript转码GBK(u2gb.js)

    `u2gb.js`这个文件就是专门用于实现JavaScript中的Unicode到GBK编码转换的工具。 GBK编码是GB2312编码的扩展,包含了更多的汉字和其他字符,主要在中国大陆使用。Unicode则是一个包含全世界多种语言字符的标准编码...

    discuz模板:迪恩游戏Time风 商业版GBK UTF8.zip

    《迪恩游戏Time风商业版GBK UTF8》是一款专为Discuz论坛系统设计的模板,旨在为游戏社区提供独特且专业的界面风格。迪恩游戏Time风模板以其独特的设计和丰富的功能,深受用户喜爱,尤其适合那些希望提升用户体验,...

    gb转utf8,gb转utf8

    本篇文章将详细解析`GB`转`UTF-8`的过程,以及为何需要进行这样的转换。 1. **GB系列编码** `GB`(Great Wall,大字符集)是中国大陆广泛使用的汉字编码标准,主要包括`GBK`(国标扩展)和`GB2312`。`GB2312`是最...

    游戏资源下载论坛模板默认GBK编码+支持升级最新UTF8版本

    【标题】"游戏资源下载论坛模板默认GBK编码+支持升级最新UTF8版本"涉及的核心知识点主要涵盖两个方面:一是论坛模板的设计与应用,二是字符编码的兼容性问题,特别是GBK和UTF-8之间的转换。 首先,论坛模板是网站...

    Java gbk转utf-8

    综上所述,Java环境下GBK转UTF-8涉及多个步骤,包括文件的批量转换、本地环境的配置、相关配置文件的修改以及确保整个项目从源代码到部署的各个阶段都采用UTF-8编码。通过这些措施,可以有效解决编码问题,保证程序...

    js 编码转换 gb2312 和 utf8 互转的2种方法

    方法一: 代码如下:function gb2utf8(data){ var glbEncode = []; gb2utf8_data = data; execScript(“gb2utf8_data = MidB(gb2utf8_data, 1)”, “VBScript”); var t=escape(gb2utf8_data).replace(/%u/g,””)....

Global site tag (gtag.js) - Google Analytics