快速业务通道

URLEncoder的只编码中文字符的类 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-13

URLEncoder的只编码中文字符的类

时间:2012-01-14 java2000.net

Java代码

package log;   
  
import java.io.UnsupportedEncodingException;   
import java.net.URLEncoder;   
import java.util.regex.Matcher;   
import java.util.regex.Pattern;   
  
/**  
 * 正则替换字符串里面的汉字部分。  
 *   
 * @author 赵学庆 www.java2000.net  
 */  
public class URLEncoderHZ {   
  public static void main(String[] args) throws Exception {   
    String str = "http://192.168.1.1:8080/resources/电话.xls";   
    System.out.println(encode(str, "UTF-8"));   
  }   
  
  private static String zhPattern = "[\u4e00-\u9fa5]+";   
  
  /**  
   * 替换字符串卷  
   *   
   * @param str 被替换的字符串  
   * @param charset 字符集  
   * @return 替换好的  
   * @throws UnsupportedEncodingException 不支持的字符集  
   */  
  public static String encode(String str, String charset) throws UnsupportedEncodingException {   
    Pattern p = Pattern.compile(zhPattern);   
    Matcher m = p.matcher(str);   
    StringBuffer b = new StringBuffer();   
    while (m.find()) {   
      m.appendReplacement(b, URLEncoder.encode(m.group(0), charset));   
    }   
    m.appendTail(b);   
    return b.toString();   
  }   
}

输出

http://192.168.1.1:8080/resources/%E7%94%B5%E8%AF%9D.xls

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号