java 编码

摘自:http://blog.youkuaiyun.com/myyate/archive/2008/01/17/2049701.aspx

word 另存为单个网页文件mht,做为导出word模版,需要对替换项进行编码转化

public class WordEncoder {

 /**
  * 把给定的str转换为10进制表示的unicode,格式为:目前只是用于mht模板的转码
  *
  * @param str
  * @return
  */
 public static String encode2HtmlUnicode(String str) {

  if (str == null)
   return "";

  StringBuffer sb = new StringBuffer(str.length() * 2);
  for (int i = 0; i < str.length(); i++) {
   sb.append(encode2HtmlUnicode(str.charAt(i)));
  }
  return sb.toString();
 }

 public static String encode2HtmlUnicode(char character) {
  if (character > 255) {
   return "&#" + (character & 0xffff) + ";";
  } else {
   return String.valueOf(character);
  }
 }

 public static String encode2HtmlUnicode(Character character) {
  if (character == null)
   return null;
  return encode2HtmlUnicode(character.charValue());
 }

 public static void encode2HtmlUnicode(String[] value) {

  if (value == null || value.length < 1)
   return;

  for (int i = 0; i < value.length; i++) {
   value[i] = encode2HtmlUnicode(value[i]);
  }
 }
 
 static String replaceNullString(String str) 
 {
  if(str == null)
  {
   str="";
  }
  return str;
 }
 
 //
    static Object encodeStringAndCharacter(Object value) {
        if(value instanceof String) {
            return replaceNullString(encode2HtmlUnicode((String) value));
        } else if(value instanceof Character) {
            return replaceNullString(encode2HtmlUnicode((Character) value));
        }
        return null;
        }
       
        /*static void encodeExceptStringAndCharacter(Object value) throws Exception {
        if(value instanceof String[]) {
            encode2HtmlUnicode((String[]) value);
        } else if(value instanceof List) {
            encode2HtmlUnicode((List) value);
        } else if(value instanceof Form) {
            encode2HtmlUnicode((Form) value);
        } else if(value instanceof Form[]) {
            encode2HtmlUnicode((Form[]) value);
        }
        }*/
       
       
        static void encode2HtmlUnicode(List value) throws Exception {

        if(value == null || value.size() < 1) return;
       
        for(int i = 0; i < value.size(); i ++) {
            Object ele = value.get(i);
            Object result = encodeStringAndCharacter(ele);
            if(result != null) {
            value.set(i, result);
            } else {
            //encodeExceptStringAndCharacter(ele);
            }
        }  
        }
       
       
        /*static void encode2HtmlUnicode(Form[] value) throws Exception {
       
        if(value == null) return;
       
        for(int i = 0; i < value.length; i ++) {
            encode2HtmlUnicode(value[i]);
        }
        }*/
       
       /* static void encode2HtmlUnicode(Form value) throws Exception {
       
        if(value == null) return;
       
        PropertyDescriptor[] pds = PropertyUtils.getPropertyDescriptors(value.getClass());
        if(pds == null) return;
       
        for(int i = 0; i < pds.length; i ++) {
            PropertyDescriptor pd = pds[i];
            Object fieldValue = PropertyUtils.getProperty(value, pd.getName());
            Class fieldType = pd.getPropertyType();
            if(String.class.isAssignableFrom(fieldType)) {
            PropertyUtils.setProperty(value,
                pd.getName(),
                StringUtils.replaceNullString(EncodeUtils.encode2HtmlUnicode((String) fieldValue)));
            } else if(List.class.isAssignableFrom(fieldType)) {
            encode2HtmlUnicode((List) fieldValue);
            } else if(Form.class.isAssignableFrom(fieldType)) {
            encode2HtmlUnicode((Form) fieldValue);
            } else if(Form[].class.isAssignableFrom(fieldType)) {
            encode2HtmlUnicode((Form[]) fieldValue);
            }
        }
        }*/
       
        static BASE64Encoder base64Encoder = new BASE64Encoder();

        /**
         * 把给定的二进制流变成base64码
         * @param in
         * @return
         * @throws IOException
         */
        public static synchronized String base64Encode(InputStream in) throws IOException {
        byte[] img = new byte[in.available()];
        in.read(img);
        return base64Encode(img);
        }
       
        public static synchronized String base64Encode(String in) throws IOException {
        return base64Encode(in.getBytes());
        }
       
        public static synchronized String base64Encode(byte[] in) throws IOException {
        return base64Encoder.encode(in);
        }

}

转载于:https://www.cnblogs.com/qiongchun/archive/2010/01/27/1657780.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值