首 页 | 精品电影 | 音乐天堂 | 在线游戏 | Flash MTV | 三湘书屋 | 幽默笑话 | 三湘图库 | 美女写真 | IT知识库 | QQ贴图 | 加入书签

网页制作网络编程图形图象操作系统冲浪宝典软件教学网络安全认证考试通信技术电子商务业内动态书籍教程原码

最近更新 文章分类 多媒体类 精品软件

本站搜索:
您的位置:三湘时空 -> IT知识库 -> 文章分类 -> Javascript教程 -> Gb2312转utf-8(vbs+js)
Gb2312转utf-8(vbs+js)


文章类别:Javascript教程 来源: 作者: 发表日期:2006-9-8 字体:[ ]

小游戏 | 在线影院 | 幽默笑话 | 源码下载 | Flash MTV | 音乐试听 | 书屋 | 美女写真

昨天看了一下cocoon counter的代码,发现里面是用vbScript转的,费了以上午时间来研究,还是被搞得晕糊糊- -

他的vb转换函数是这样的:


Function DeCodeAnsi(s)
Dim i, sTmp, sResult, sTmp1
sResult = ""
For i=1 To Len(s)
If Mid(s,i,1)="%" Then
sTmp = "&H" & Mid(s,i+1,2)
If isNumeric(sTmp) Then
If CInt(sTmp)=0 Then
i = i + 2
ElseIf CInt(sTmp)>0 And CInt(sTmp)<128 Then
sResult = sResult & Chr(sTmp)
i = i + 2
Else
If Mid(s,i+3,1)="%" Then
sTmp1 = "&H" & Mid(s,i+4,2)
If isNumeric(sTmp1) Then
sResult = sResult & Chr(CInt(sTmp)*16*16 + CInt(sTmp1))
i = i + 5
End If
Else
sResult = sResult & Chr(sTmp)
i = i + 2
End If
End If
Else
sResult = sResult & Mid(s,i,1)
End If
Else
sResult = sResult & Mid(s,i,1)
End If
Next
DeCodeAnsi = sResult
End Function

也就是用chr()函数把10进制的ANSI 字符代码转换成文字。文字本身应该是unicode,也就是vbs自动完成了gb-utf的转换,下面是我测试的一些数据:
测试代码:(需要把上面的代码加在前面)

<SCRIPT RUNAT=SERVER LANGUAGE=JAVASCRIPT>
Response.write("<br/>strx = chr(54992):");
Response.write(strx);
Response.write("<br/>strx.charCodeAt(0):");
Response.write(strx.charCodeAt(0));
Response.write("<br/>\"中\".charCodeAt(0):");
Response.write("中".charCodeAt(0));
Response.write("<br/>escape(strx):");
Response.write(escape(strx));
Response.write("<br/>encodeURI(strx):");
Response.write(encodeURI(strx));
Response.write("<br/>escape(\"中\"):");
Response.write(escape("中"));
Response.write("<br/>String.fromCharCode(20013):");
Response.write(String.fromCharCode(20013));
</SCRIPT>


分别调整文件存储格式,codepage,charset得到的结果:

文件为ansi格式:
codepage=936:
Response.Charset = "gb2312";
strx = chr(54992)
strx:中
strx.charCodeAt(0):20013
"中".charCodeAt(0):20013
escape(strx):%u4E2D
encodeURI(strx):%E4%B8%AD
escape("中"):%u4E2D
String.fromCharCode(20013):中

Response.Charset = "utf-8";
strx = chr(54992)
strx:֐
strx.charCodeAt(0):20013
"֐".charCodeAt(0):20013
escape(strx):%u4E2D
encodeURI(strx):%E4%B8%AD
escape("֐"):%u4E2D
String.fromCharCode(20013):֐

codepage=65001:
Response.Charset = "gb2312";
strx = chr(54992)
strx:涓
strx.charCodeAt(0):20013
"".charCodeAt(0):-1.#IND
escape(strx):%u4E2D
encodeURI(strx):%E4%B8%AD
escape(""):
String.fromCharCode(20013):涓

Response.Charset = "utf-8";
strx = chr(54992)
strx:㝤
strx.charCodeAt(0):14180
"".charCodeAt(0):-1.#IND
escape(strx):%u3764
encodeURI(strx):%E3%9D%A4
escape(""):
String.fromCharCode(20013):中

文件为utf-8格式:
codepage=65001:
Response.Charset = "gb2312";
strx = chr(54992)
strx:涓
strx.charCodeAt(0):20013
"涓?.charCodeAt(0):20013
escape(strx):%u4E2D
encodeURI(strx):%E4%B8%AD
escape("涓?):%u4E2D
String.fromCharCode(20013):涓

Response.Charset = "utf-8";
strx = chr(54992)
strx:中
strx.charCodeAt(0):20013
"中".charCodeAt(0):20013
escape(strx):%u4E2D
encodeURI(strx):%E4%B8%AD
escape("中"):%u4E2D
String.fromCharCode(20013):中

codepage=936:
Active Server Pages 错误 'ASP 0245'
代码页值的混合使用
/referer_alapha/test2.asp,行 1
指定的 @CODEPAGE 值与包括文件的 CODEPAGE 或文件的保存格式的值不一致。


哈哈,是不是看晕了?我也晕,搞不明白为什么文件存储的格式跟chr(54992)这个函数怎么会扯上关系,而String.fromCharCode(20013)可以得到正确结果(测试的第四部分数据)。大概是Vbs里面逻辑太混乱了。
不管怎样,有了这个方法,gb2312转utf-8简单多了。

上一篇:javascript gb2312转utf-8 下一篇:QQ2006 Beta3的好用新功能:在线收付
本栏目热门文章
·javascript+xml实现二级下拉菜单,不会被任何标签或元素遮 2005-10-4
·JavaScript Web页面内容导出到Word、Excel 2005-11-7
·用javascript连接access数据库的方法 2005-10-4
·JAVASCRIPT加密解密终级指南 2005-10-4
·TreeView节点互斥,autopostback=false的方法 2005-10-4
·网页对联广告代码效果大全 2005-11-7
·网页javascript精华代码集 2006-1-6
·javascript应用:实现复选框全选/全不选切换 2006-1-6
·利用JS获取IE客户端IP及MAC的实现 2006-1-10
·Javascript的IE和Firefox兼容性汇编 2005-10-4
新近更新文章
·js关于document和window对象 2006-9-14
·Javascript代码混淆综合解决方案-Javascript在线混 2006-9-14
·Gb2312转utf-8(vbs+js) 2006-9-8
·javascript gb2312转utf-8 2006-9-8
·使用Javascript修改客户端注册表 2006-9-8
·使用Javascript创建快捷方式 2006-9-8
·JavaScript方法和技巧大全 2006-9-8
·js事件列表 2006-9-8
·使用脚本控制网页Table的显示隐藏(全代码) 2006-9-1
·如何在服务端(Page.Write)调用自定义的JS方法 2006-8-29
首 页 | 软件发布 | 广告联系 | 下载帮助 | 意见反馈 | 网站地图
  CopyRight? 2002-2004 WWW.SXSKY.NET? All Rights Reserved
三湘时空 站长QQ:82675303 Email: