java中判断字符编码以及转码
http://simlee.iteye.com/blog/431611
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
Java代码 java中判断字符编码以及转码 [参考]判断字符编码以及转码的一个工具类 http://hi.baidu.com/pazhu/blog/item/efcce7a2034ae9a8caefd05b.html 2008-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 ""; } } |