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;
}
}
function Utf8ToGb2312(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;
}
// xmlstr =Utf8ToGb2312(xmlstr);
alert(xmlstr);
//alert(xmlstr);
分享到:
相关推荐
JS GB2312TOUTF8 UTF8TOGB2312 编码转换 /* * GB2312转UTF8 * 例: * var xx=new GB2312UTF8(); * var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa"); * var Gb2312=xx.Utf8ToGb2312(Utf8); * ...
GB2312和UTF8是两种常见的字符编码标准,它们各有特点,并且在不同的场景下有着各自的适用性。 GB2312,全称为“汉字机内码扩展规范”,是中国大陆早期广泛使用的汉字编码标准,主要针对简体中文。它定义了6763个...
标题“gb2312toutf8.rar”表明这是一个与字符编码转换相关的项目,特别是将GB2312编码转换为UTF-8编码。在IT领域,字符编码是处理文本数据时的重要环节,不同的编码标准适用于不同的地区和用途。GB2312是中国大陆...
针对这种情况,"GB2UTF8.rar"提供了一个实用的工具,它能够帮助用户快速、方便地将网站的编码在GB2312和UTF-8之间进行批量转换。以下我们将详细探讨这个工具及其工作原理。 GB2312是中国大陆早期广泛使用的简体中文...
例:utf8gb2312互转 /* * 例: * $xyy=new GB2312UTF8(); * $UTF8=$xyy->GB2312TOUTF8("i lover 你!"); * $GB2312=$xyy->UTF8TOGB2312($UTF8); * echo $UTF8." ".$GB2312; */
在Windows环境下,C++开发过程中,常常需要处理各种编码格式之间的转换,比如GB2312(简体中文的一种常见编码)与UTF-8(通用的多语言编码)。本项目提供的"ChineseCode.cpp"和"ChineseCode.h"文件,正是为了解决这...
GB2312和UTF-8是两种常见的字符编码标准,它们各自有着不同的特点和应用场景。 GB2312,全称“汉字国标交换码”,是中国国家标准的简体中文字符集,主要针对中国大陆地区使用。它在1980年发布,设计时主要考虑了...
在处理字符编码时,我们经常需要将不同编码格式的数据进行转换,如UTF-8和GB2312。UTF-8是一种变长的Unicode编码,广泛用于网络和操作系统,而GB2312是中国大陆早期的简体中文字符集,主要用于存储中文文本。 标题...
从微信小程序上下发的数据为utf8格式,而stm32的格式为gb2312,需要进行编码转换,utf8中文字符串转换为gb2312,devcpp和stm32验证通过
GB2312和UTF-8是两种不同的字符编码标准,它们各自有其特点和适用范围。本资源提供了一个C语言实现的GB2312到UTF-8的转换函数,方便开发者在需要进行这种编码转换时使用。 GB2312是中国大陆早期广泛使用的简体中文...
UTF-8和GB2312是两种常见的字符编码标准,它们用于表示不同语言的字符集,特别是在中文环境中。这个工具,基于Qt5.9框架开发,专门用于UTF-8与GB2312编码之间的批量转换,为用户提供了方便。 首先,我们来了解UTF-8...
utf-8和国标gb2312互相转换代码
(1)utf8转换为gb2312。 $converter = new GB2312UTF8(); $gb2312Str = $converter->UTF8TOGB2312($utf8Str); (2)gb2312转换为utf8类 $converter = new GB2312UTF8(); $utf8Str = $converter->GB2312TOUTF8($gb2312...
汉字编码是计算机处理中文字符的关键技术,涉及到不同的编码标准,如GBK、GB2312、UTF-8以及ISO-8859-1等。这些编码方式在不同场景下有着各自的应用和特点。 首先,GB2312是1980年代中国制定的一种简体中文字符编码...
文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具文件编码转换工具(GB2312与UTF-8转换) python写的一个小工具
"GB2312" 和 "UTF-8" 是两种常见的字符编码格式,它们各自有其特性和应用场景。本文将深入探讨这两种编码方式,并介绍它们之间的转换方法。 GB2312,全称为“汉字内码扩展规范”,是中国大陆最早广泛使用的简体中文...
基于keil,单片机,实现gb2312和utf8编码的相互转换,实现web中文下发后台的封装转换。
本主题聚焦于“utf8_gb2312.zip”这个压缩包文件,它涉及到了字符编码标准UTF-8和GB2312,以及它们在ESP8266微控制器上的应用。下面我们将深入探讨这些知识点。 首先,让我们了解UTF-8和GB2312两种字符编码。UTF-8...
"UTF-8"和"GB2312"是两种常见的字符编码标准,它们各自有不同的历史背景和应用场景。 UTF-8(8位Unicode转换格式)是一种广泛使用的多字节字符编码方案,它兼容ASCII编码并能表示Unicode字符集中的所有字符。UTF-8...
gb2312转utf8字符php源代码 class GB2312UTF8{ var $GB2312=array(); function GB2312UTF8(){ $this->GB2312 = array( )