Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)

原创 2002年09月15日 12:26:00

经常用vb写的urlencoding很容易实现UrlEncode,以及利用
http://www.csdn.net/Develop/read_article.asp?id=13846
中的代码很容易改写成vbs从而实现部分汉字的拼音

但由于有些人需要完全用javascript写,而javascript默认是Unicode
所以就需要一个Unicode和GB的转换库

Unicode和GB的转换库和UrlEncode和getSpell函数,请下载
http://www.blueidea.com/user/qswh/qswhU2GB.js

var qswhU2GB=[];//Unicode和GB的对应表,略
var qswhSpell=[];//拼音的对照表,略

function UrlEncode(str){
 var i,c,ret="",strSpecial="!/"#$%&'()*+,/:;<=>?@[/]^`{|}~%";
 for(i=0;i<str.length;i++){
  if(str.charCodeAt(i)>=0x4e00){
   c=qswhU2GB[str.charCodeAt(i)-0x4e00];
   ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
  }
  else{
   c=str.charAt(i);
   if(c==" ")
    ret+="+";
   else if(strSpecial.indexOf(c)!=-1)
    ret+="%"+str.charCodeAt(i).toString(16);
   else
    ret+=c;
  }
 }
 return ret;
}

function getSpell(str,sp){
 var i,c,t,ret="";
 if(sp==null)sp="";
 for(i=0;i<str.length;i++){
  if(str.charCodeAt(i)>=0x4e00){
   c=parseInt(qswhU2GB[str.charCodeAt(i)-0x4e00],16);
   if(c<55290){
    for(t=qswhSpell.length-1;t>0;t=t-2)if(qswhSpell[t]<=c)break;
    if(t>0)ret+=qswhSpell[t-1]+sp;
   }
  }
 }
 return ret.substr(0,ret.length-sp.length);
}

sp是分隔符,范例如下
<script language=javascript src=qswhU2GB.js></script>

<script language=javascript>
document.write(UrlEncode("中文 <>/"#%{}|^~[]`&?+Abc"),"<br>")
document.write(getSpell("中国程序员大本营"),"<br>")
document.write(getSpell("秋水无恨","'"),"<br>")
</script>

ActionScript快速对照表

 + Basic Actions 能加入到程序中的基本Action- Go to 跳转到指定的帧 - Play 播放 - Stop 停止 - Toggle High Quality 在高画质和低画质间...
  • xxyakoo
  • xxyakoo
  • 2008年10月13日 21:13
  • 642

常见字符编码介绍以及相互转换

最近在用JS时,涉及到了不同编码之间的转换.于是汇总了一些网上的资料,整合成了自己的文档. -备忘录 知识点涉及: 字符编码基础,不同编码之间的转换,如UTF-8转UTF-16,如UTF-16转GB...
  • u010979495
  • u010979495
  • 2016年01月28日 16:52
  • 4088

浅谈unicode和gb2312之间的转换

浅谈unicode和gb2312之间的转换     我先说,这两个是没有线性的转换关系,不能通过程序加加减减弄出来,只能硬性的对应,今天看了一天,终于知道了,哎。。。 1. Unicode概念    ...
  • jiaowodiedie
  • jiaowodiedie
  • 2010年03月21日 00:23
  • 2655

Unicode下汉字URLEncode解决方法

//汉字EnCode .h  int UniToUTF8(CString strUnicode,char *szUtf8);  CString UniToUrlEncode(const char...
  • zhang11wu4
  • zhang11wu4
  • 2011年08月24日 11:35
  • 2257

gb2312和utf-8下的UrlEncode()

一、为什么要设定locale 正茹钱面我所讲的,设定locale与你能否浏览中文的网页没有直接的关系,即便你把locale设置成en_US.ISO-8859-1这样一个标准的英文locale你照样可以...
  • zbyufei
  • zbyufei
  • 2010年12月13日 18:08
  • 996

JS(Unicode->GB)的精简版(仍含拼音和UrlEncode)

http://www.csdn.net/Develop/read_article.asp?id=15043用的Unicode和GB的转换库如下地址http://www.blueidea.com/use...
  • qiushuiwuhen
  • qiushuiwuhen
  • 2002年09月17日 09:29
  • 3781

JS(Unicode->GB)的精简版(仍含拼音和UrlEncode)

var toHTML = {    on : function (str) {        var a = [], i = 0;                for (; i           ...
  • eidolon8
  • eidolon8
  • 2008年09月08日 15:38
  • 523

unicode 和 GB2312 编码对应表

unicode 和 GB2312 编码对应表unicode GB231200A4 A1E800A7 A1EC00A8 A1A700B0 A1E300B1 A1C000B7 A1A400D7 A1C10...
  • longronglin
  • longronglin
  • 2006年10月29日 19:52
  • 9624

多字节与unicode

VC 程序员的阵痛--将多字节环境移植到Unicode环境 环境的移植是什么样的感受?我的一位师哥说的很真切:这是一项体力活!说的一点没错。在我将项目的环境设置成Unicode时,编译时竟出现5...
  • BuShiCheDi
  • BuShiCheDi
  • 2014年04月29日 10:33
  • 579

拼音Ascii码对照表

"a",-20319, "ai",-20317, "an",-20304, "ang",-20295, "ao",-20292, "ba",-20283, "bai",-20265, "...
  • yilovexing
  • yilovexing
  • 2016年09月20日 11:55
  • 837
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
举报原因:
原因补充:

(最多只允许输入30个字)