快速业务通道

Java ME平台中的URLEncoder实现类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25
xternal encoding before hex conversion try { if (wroteUnencodedChar) { // Fix for 4407610 writer = new OutputStreamWriter(buf, enc); wroteUnencodedChar = false; } if(writer != null) writer.write(c); /* * If this character represents the start of a Unicode * surrogate pair, then pass in two characters. It''s not * clear what should be done if a bytes reserved in the * surrogate pairs range occurs outside of a legal * surrogate pair. For now, just treat it as if it were * any other character. */ if (c >= 0xD800 && c <= 0xDBFF) { /* System.out.println(Integer.toHexString(c) + " is high surrogate"); */ if ( (i+1) < s.length()) { int d = (int) s.charAt(i+1); /* System.out.println("\tExamining " + Integer.toHexString(d)); */ if (d >= 0xDC00 && d <= 0xDFFF) { /* System.out.println("\t" + Integer.toHexString(d) + " is low surrogate"); */ writer.write(d); i++; } } } writer.flush(); } catch(IOException e) { buf.reset(); continue; } byte[] ba = buf.toByteArray(); for (int j = 0; j < ba.length; j++) { out.append(''%''); char ch = forDigit((ba[j] >> 4) & 0xF, 16); if (isLetter(ch)) { ch -= caseDiff; } out.append(ch);

ch = forDigit((ba[j] & 0xF), 16); //ch = forDigit(ba[j] & 0xF, 16); if (isLetter(ch)) { ch -= caseDiff; } out.append(ch); } buf.reset(); needToChange = true; } }

return (needToChange? out.toString() : s); }

private static boolean isLetter(char c){ if( (c >= ''a'' && c <= ''z'') || (c >=''A'' && c <= ''Z'')) return true; return false; }

private static char forDigit(int digit,int radix){ if ((digit >= radix) || (digit < 0)) { return ''\0''; } if ((radix < MIN_RADIX) || (radix > MAX_RADIX)) { return ''\0''; } if (digit < 10) { return (char)(''0'' + digit); } return (char)(''a'' - 10 + digit); } }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号