Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
来源:互联网 发布:在职考法律硕士知乎 编辑:程序博客网 时间:2024/05/02 02:45
经常用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>
- Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
- Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
- JS(Unicode->GB)的精简版(仍含拼音和UrlEncode)
- JS(Unicode->GB)的精简版(仍含拼音和UrlEncode)
- 实现Server.UrlEncode和Server.UrlDecode功能的js代码
- Unicode和GB的转换库和UrlEncode和getSpell函数
- 利用pingYin4j进行来中文和拼音的切换实现搜索功能的效率
- 利用JS实现OnMouseOver和OnMouseOut功能
- js urlencode和urldecode
- 在Java中,GB码和Unicode码的互转问题,欢迎讨论
- ANSI 和 Unicode 字符函数对照表
- ANSI 和 Unicode 字符函数对照表
- PHP中rawurlencode和urlencode、JS中encodeURI与encodeURIComponent 的区别
- PHP中rawurlencode和urlencode、JS中encodeURI与encodeURIComponent 的区别
- Android 中利用WebViewJavascriptBridge 实现js和java的交互
- Android 中利用WebViewJavascriptBridge 实现js和java的交互
- 关于汉字和拼音对照片的制作问题
- HttpUtility.UrlEncode和Server.UrlEncode 的区别
- php的汉字转换: GBK->Unicode(UTF8)
- php的汉字转换: Unicode(UTF8)->GBK
- 通过Adodb.Stream取得图像(BMP JPG PNG GIF SWF)的高度和宽度
- 让自定义文件下载支持断点续传(HTTP_RANGE Adodb.Stream)
- php的汉字转换: GBK->Big5
- Js中实现拼音和UrlEncode的功能(利用GB和Unicode对照表)
- JS(Unicode->GB)的精简版(仍含拼音和UrlEncode)
- 根据需要动态include不同的文件
- 纠正:HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法
- Calendar如何只显示“一、二、三...日”,不显示“星期”
- EnableViewState="false"的DataGrid分页
- 利用SharpZipLib实现实时zip压缩下载整个目录
- 自制Pop3邮件接收系统(一):利用MatchEvaluator实现HZ的解码
- 用regRange轻易实现特定数字范围的正则验证,如时间,IP等