欢迎来到天天文库
浏览记录
ID:58432131
大小:17.50 KB
页数:2页
时间:2020-09-03
《将中文字转换成URL编码的汉字.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、publicclassURLtoUTF8{//转换为%E4%BD%A0形式publicstaticStringtoUtf8String(Strings){StringBuffersb=newStringBuffer();for(inti=0;i=0&&c<=255){sb.append(c);}else{byte[]b;try{b=String.valueOf(c).getBytes("utf-8");}catch(Exceptionex){System
2、.out.println(ex);b=newbyte[0];}for(intj=0;j3、1;intb,sumb=0;for(inti=0,more=-1;i4、Character.toLowerCase((char)ch)-'a')&0xF;b=(hb<<4)5、lb;break;case'+':b='';break;default:b=ch;}/*DecodebytebasUTF-8,sumbcollectsincompletechars*/if((b&0xc0)==0x80){//10xxxxxx(continuationbyte)sumb=(sumb<<6)6、(b&0x3f);//Add6bitstosumbif(--more==0)sbuf.append((char)sumb);//7、Addchartosbuf}elseif((b&0x80)==0x00){//0xxxxxxx(yields7bits)sbuf.append((char)b);//Storeinsbuf}elseif((b&0xe0)==0xc0){//110xxxxx(yields5bits)sumb=b&0x1f;more=1;//Expect1morebyte}elseif((b&0xf0)==0xe0){//1110xxxx(yields4bits)sumb=b&0x0f;more=2;//Expect2morebytes}elseif(8、(b&0xf8)==0xf0){//11110xxx(yields3bits)sumb=b&0x07;more=3;//Expect3morebytes}elseif((b&0xfc)==0xf8){//xx(yields2bits)sumb=b&0x03;more=4;//Expect4morebytes}else/*if((b&0xfe)==0xfc)*/{//x(yields1bit)sumb=b&0x01;more=5;//Expect5morebytes}/*Wedon'ttestiftheUTF-8encodingisw9、ell-formed*/}returnsbuf.toString();}publicstaticvoidmain(String[]args){System.out.println(URLtoUTF8.toUtf8String("你"));System.out.println(URLtoUTF8.unescape("%E4%BD%A0%20%E5%A5%BD"));}}
3、1;intb,sumb=0;for(inti=0,more=-1;i4、Character.toLowerCase((char)ch)-'a')&0xF;b=(hb<<4)5、lb;break;case'+':b='';break;default:b=ch;}/*DecodebytebasUTF-8,sumbcollectsincompletechars*/if((b&0xc0)==0x80){//10xxxxxx(continuationbyte)sumb=(sumb<<6)6、(b&0x3f);//Add6bitstosumbif(--more==0)sbuf.append((char)sumb);//7、Addchartosbuf}elseif((b&0x80)==0x00){//0xxxxxxx(yields7bits)sbuf.append((char)b);//Storeinsbuf}elseif((b&0xe0)==0xc0){//110xxxxx(yields5bits)sumb=b&0x1f;more=1;//Expect1morebyte}elseif((b&0xf0)==0xe0){//1110xxxx(yields4bits)sumb=b&0x0f;more=2;//Expect2morebytes}elseif(8、(b&0xf8)==0xf0){//11110xxx(yields3bits)sumb=b&0x07;more=3;//Expect3morebytes}elseif((b&0xfc)==0xf8){//xx(yields2bits)sumb=b&0x03;more=4;//Expect4morebytes}else/*if((b&0xfe)==0xfc)*/{//x(yields1bit)sumb=b&0x01;more=5;//Expect5morebytes}/*Wedon'ttestiftheUTF-8encodingisw9、ell-formed*/}returnsbuf.toString();}publicstaticvoidmain(String[]args){System.out.println(URLtoUTF8.toUtf8String("你"));System.out.println(URLtoUTF8.unescape("%E4%BD%A0%20%E5%A5%BD"));}}
4、Character.toLowerCase((char)ch)-'a')&0xF;b=(hb<<4)
5、lb;break;case'+':b='';break;default:b=ch;}/*DecodebytebasUTF-8,sumbcollectsincompletechars*/if((b&0xc0)==0x80){//10xxxxxx(continuationbyte)sumb=(sumb<<6)
6、(b&0x3f);//Add6bitstosumbif(--more==0)sbuf.append((char)sumb);//
7、Addchartosbuf}elseif((b&0x80)==0x00){//0xxxxxxx(yields7bits)sbuf.append((char)b);//Storeinsbuf}elseif((b&0xe0)==0xc0){//110xxxxx(yields5bits)sumb=b&0x1f;more=1;//Expect1morebyte}elseif((b&0xf0)==0xe0){//1110xxxx(yields4bits)sumb=b&0x0f;more=2;//Expect2morebytes}elseif(
8、(b&0xf8)==0xf0){//11110xxx(yields3bits)sumb=b&0x07;more=3;//Expect3morebytes}elseif((b&0xfc)==0xf8){//xx(yields2bits)sumb=b&0x03;more=4;//Expect4morebytes}else/*if((b&0xfe)==0xfc)*/{//x(yields1bit)sumb=b&0x01;more=5;//Expect5morebytes}/*Wedon'ttestiftheUTF-8encodingisw
9、ell-formed*/}returnsbuf.toString();}publicstaticvoidmain(String[]args){System.out.println(URLtoUTF8.toUtf8String("你"));System.out.println(URLtoUTF8.unescape("%E4%BD%A0%20%E5%A5%BD"));}}
此文档下载收益归作者所有