/*
* GB2312转UTF8
* 例:
* var xx=new GB2312UTF8();
* var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa");
* var Gb2312=xx.Utf8ToGb2312(Utf8);
* alert(Gb2312);
*/
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;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
JS GB2312转UTF8 支持中英文混合

共1个文件
js:1个


温馨提示
JS GB2312TOUTF8 UTF8TOGB2312 编码转换<br>/*<br> * GB2312转UTF8<br> * 例:<br> * var xx=new GB2312UTF8();<br> * var Utf8=xx.Gb2312ToUtf8("你aaa好aaaaa");<br> * var Gb2312=xx.Utf8ToGb2312(Utf8);<br> * alert(Gb2312);<br> */
资源推荐
资源详情
资源评论



























收起资源包目录


共 1 条
- 1

li36669957
- 粉丝: 25
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 基于嵌入式系统的LCD电子时钟方案设计书.doc
- (源码)基于Python和Flask框架的学习经验分享平台.zip
- 全国PLC方案设计书师大学本科方案设计书2.doc
- 计算机应用技术对企业信息化的影响探究.docx
- 《C语言程序设计方案》练习题.doc
- 交通信号控制双向协调调试技术探讨.doc
- -单片机数字电子钟设计方案与研究报告-.doc
- 国家大学科技园徐州软件基地#楼工程量清单和招标控制价的编制毕业设计论文终稿.doc
- 互联网+社区养老模式构建对策.docx
- 操作系统学习课程设计方案指导书-.doc
- 分层教学法在中职计算机课程教学中的应用.docx
- 基于VB图书管理系统大学本科方案设计书.doc
- 试论网络思想政治教育的可能性分析.docx
- (源码)基于C++和SFML库的Tetris Clone游戏项目.zip
- 大学生应用计算机进行冶金相关软件开发的探究.docx
- 8.无线网络安全破解与防御.ppt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

- 1
- 2
- 3
- 4
- 5
- 6
前往页