simlee 发表于 2013-2-4 22:22:54

java中判断字符编码以及转码

java中判断字符编码以及转码[参考]判断字符编码以及转码的一个工具类http://hi.baidu.com/pazhu/blog/item/efcce7a2034ae9a8caefd05b.html2008-07-01 08:55/*** Date: 2008-6-27* <p>Copyright: Copyright (c) 2006</p>** @version 1.0* @author: SRH*/public class TranCharset {    private static final String PRE_FIX_UTF = "&#x";    private static final String POS_FIX_UTF = ";";    public TranCharset() {    }    /**   * Translate   charset   encoding   to   unicode   *   * @param sTemp charset   encoding   is   gb2312   * @return charset   encoding   is   unicode   */    public static String XmlFormalize(String sTemp) {      StringBuffer sb = new StringBuffer();      if (sTemp == null || sTemp.equals("")) {            return "";      }      String s = TranCharset.TranEncodeTOGB(sTemp);      for (int i = 0; i < s.length(); i++) {            char cChar = s.charAt(i);            if (TranCharset.isGB2312(cChar)) {                sb.append(PRE_FIX_UTF);                sb.append(Integer.toHexString(cChar));                sb.append(POS_FIX_UTF);            } else {                switch ((int) cChar) {                  case 32:                        sb.append(" ");                        break;                  case 34:                        sb.append(""");                        break;                  case 38:                        sb.append("&");                        break;                  case 60:                        sb.append("<");                        break;                  case 62:                        sb.append(">");                        break;                  default:                        sb.append(cChar);                }            }      }      return sb.toString();    }    /**   * 将字符串编码格式转成GB2312   *   * @param str   * @return   */    public static String TranEncodeTOGB(String str) {      try {            String strEncode = TranCharset.getEncoding(str);            String temp = new String(str.getBytes(strEncode), "GB2312");            return temp;      } catch (java.io.IOException ex) {            return null;      }    }    /**   * 判断输入字符是否为gb2312的编码格式   *   * @param c 输入字符   * @return 如果是gb2312返回真,否则返回假   */    public static boolean isGB2312(char c) {      Character ch = new Character(c);      String sCh = ch.toString();      try {            byte[]   bb = sCh.getBytes("gb2312");            if (bb.length > 1) {                return true;            }      } catch (java.io.UnsupportedEncodingException ex) {            return false;      }      return false;    }    /**   * 判断字符串的编码   *   * @param str   * @return   */    public static String getEncoding(String str) {      String encode = "GB2312";      try {            if (str.equals(new String(str.getBytes(encode), encode))) {                String s = encode;                return s;            }      } catch (Exception exception) {      }      encode = "ISO-8859-1";      try {            if (str.equals(new String(str.getBytes(encode), encode))) {                String s1 = encode;                return s1;            }      } catch (Exception exception1) {      }      encode = "UTF-8";      try {            if (str.equals(new String(str.getBytes(encode), encode))) {                String s2 = encode;                return s2;            }      } catch (Exception exception2) {      }      encode = "GBK";      try {            if (str.equals(new String(str.getBytes(encode), encode))) {                String s3 = encode;                return s3;            }      } catch (Exception exception3) {      }      return "";    }} 
页: [1]
查看完整版本: java中判断字符编码以及转码