java中判断字符编码的格式以及转码

  1. java中判断字符编码以及转码  
  2. [参考]判断字符编码以及转码的一个工具类  
  3.   
  4.   
  5. public class TranCharset {  
  6.   
  7.     private static final String PRE_FIX_UTF = "&#x";  
  8.     private static final String POS_FIX_UTF = ";";  
  9.   
  10.     public TranCharset() {  
  11.     }  
  12.   
  13.       
  14.     public static String XmlFormalize(String sTemp) {  
  15.         StringBuffer sb = new StringBuffer();  
  16.   
  17.         if (sTemp == null || sTemp.equals("")) {  
  18.             return "";  
  19.         }  
  20.         String s = TranCharset.TranEncodeTOGB(sTemp);  
  21.         for (int i = 0; i < s.length(); i++) {  
  22.             char cChar = s.charAt(i);  
  23.             if (TranCharset.isGB2312(cChar)) {  
  24.                 sb.append(PRE_FIX_UTF);  
  25.                 sb.append(Integer.toHexString(cChar));  
  26.                 sb.append(POS_FIX_UTF);  
  27.             } else {  
  28.                 switch ((int) cChar) {  
  29.                     case 32:  
  30.                         sb.append("&#32;");  
  31.                         break;  
  32.                     case 34:  
  33.                         sb.append("&quot;");  
  34.                         break;  
  35.                     case 38:  
  36.                         sb.append("&amp;");  
  37.                         break;  
  38.                     case 60:  
  39.                         sb.append("&lt;");  
  40.                         break;  
  41.                     case 62:  
  42.                         sb.append("&gt;");  
  43.                         break;  
  44.                     default:  
  45.                         sb.append(cChar);  
  46.                 }  
  47.             }  
  48.         }  
  49.         return sb.toString();  
  50.     }  
  51.   
  52.       
  53.     public static String TranEncodeTOGB(String str) {  
  54.         try {  
  55.             String strEncode = TranCharset.getEncoding(str);  
  56.             String temp = new String(str.getBytes(strEncode), "GB2312");  
  57.             return temp;  
  58.         } catch (java.io.IOException ex) {  
  59.   
  60.             return null;  
  61.         }  
  62.     }  
  63.   
  64.       
  65.     public static boolean isGB2312(char c) {  
  66.         Character ch = new Character(c);  
  67.         String sCh = ch.toString();  
  68.         try {  
  69.             byte[]   bb = sCh.getBytes("gb2312");  
  70.             if (bb.length > 1) {  
  71.                 return true;  
  72.             }  
  73.         } catch (java.io.UnsupportedEncodingException ex) {  
  74.             return false;  
  75.         }  
  76.         return false;  
  77.     }  
  78.   
  79.       
  80.     public static String getEncoding(String str) {  
  81.         String encode = "GB2312";  
  82.         try {  
  83.             if (str.equals(new String(str.getBytes(encode), encode))) {  
  84.                 String s = encode;  
  85.                 return s;  
  86.             }  
  87.         } catch (Exception exception) {  
  88.         }  
  89.         encode = "ISO-8859-1";  
  90.         try {  
  91.             if (str.equals(new String(str.getBytes(encode), encode))) {  
  92.                 String s1 = encode;  
  93.                 return s1;  
  94.             }  
  95.         } catch (Exception exception1) {  
  96.         }  
  97.         encode = "UTF-8";  
  98.         try {  
  99.             if (str.equals(new String(str.getBytes(encode), encode))) {  
  100.                 String s2 = encode;  
  101.                 return s2;  
  102.             }  
  103.         } catch (Exception exception2) {  
  104.         }  
  105.         encode = "GBK";  
  106.         try {  
  107.             if (str.equals(new String(str.getBytes(encode), encode))) {  
  108.                 String s3 = encode;  
  109.                 return s3;  
  110.             }  
  111.         } catch (Exception exception3) {  
  112.         }  
  113.         return "";  
  114.     }  

猜你喜欢

转载自hoochiang.iteye.com/blog/2296204