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);
分享到:
相关推荐
例:utf8gb2312互转 /* * 例: * $xyy=new GB2312UTF8(); * $UTF8=$xyy->GB2312TOUTF8("i lover 你!"); * $GB2312=$xyy->UTF8TOGB2312($UTF8); * echo $UTF8." ".$GB2312; */
网站编码转换工具,可以将您网站中的所有页面批量进行utf8-gb2312或gb2312-utf8编码转换
这个就不多说的,没毒,用了几年了,感觉就是速度快,稳定性强,有时候个别文件会有一些小错,注意做好备份,不过这问题也是万分之一的机率。
从微信小程序上下发的数据为utf8格式,而stm32的格式为gb2312,需要进行编码转换,utf8中文字符串转换为gb2312,devcpp和stm32验证通过
JS GB2312TOUTF8 UTF8TOGB2312 编码转换 /* * GB2312转UTF8 * 例: * var xx=new GB2312UTF8(); * var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa"); * var Gb2312=xx.Utf8ToGb2312(Utf8); * ...
STM32 C 语言转换 utf8 gb2312。附件是c源码
可以将gb2312 和utf-8之间相互转换
C++写的Windows下GB2312与UTF-8相互转换代码,VC实现,调用了windows底层函数,不支持linux环境
utf-8和国标gb2312互相转换代码
(1)utf8转换为gb2312。 $converter = new GB2312UTF8(); $gb2312Str = $converter->UTF8TOGB2312($utf8Str); (2)gb2312转换为utf8类 $converter = new GB2312UTF8(); $utf8Str = $converter->GB2312TOUTF8($gb2312...
本资源为GB2312转UTF-8的C语言代码,实现方式为查表的方式,提供了可以调用的接口,里面有makefile,用于别的平台自行修改。
gb2312与utf-8转换
js gb2312和utf-8互转.txtjs gb2312和utf-8互转.txtjs gb2312和utf-8互转.txtjs gb2312和utf-8互转.txt
基于keil,单片机,实现gb2312和utf8编码的相互转换,实现web中文下发后台的封装转换。
中文编码详解,主要介绍汉字编码问题,包括gbk,gb2312,utf8,8859_1等
gb2312转utf8字符php源代码 class GB2312UTF8{ var $GB2312=array(); function GB2312UTF8(){ $this->GB2312 = array( )
C#写的 GBK GB2312 UTF-8转换 功能简单,仅供学习
GB2312编码与utf-8编码的字符串的转换,主要使用windows api函数MultiByteToWideChar和WideCharToMultiByte,代码简洁,经测试可用
可在linux下使用的gb2312转换成utf8的c++代码
本工具可以根据需要批量将一个目录及其子目录下的所有文件转换为GB2312或Utf-8编码文件,绿色软件,无需安装。 需要.NET Framework v2.0 运行库支持。