隨筆-61  評論-13  文章-19  trackbacks-0

          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("&#32;");
          ??????????????????????? break;
          ??????????????????? case 34:
          ??????????????????????? sb.append("&quot;");
          ??????????????????????? break;
          ??????????????????? case 38:
          ??????????????????????? sb.append("&amp;");
          ??????????????????????? break;
          ??????????????????? case 60:
          ??????????????????????? sb.append("&lt;");
          ??????????????????????? break;
          ??????????????????? case 62:
          ??????????????????????? sb.append("&gt;");
          ??????????????????????? 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) {
          ??????? }
          ??????? encode = "BIG5";
          ??????? try {
          ??????????? if (str.equals(new String(str.getBytes(encode), encode))) {
          ??????????????? String s4 = encode;
          ??????????????? return s4;
          ??????????? }
          ??????? } catch (Exception exception3) {
          ??????? }
          ??????? return "";
          ??? }

          ??? public static void main(String args[]) {
          ??????? System.out.println(XmlFormalize("下載"));
          ??? }
          }

          posted on 2006-03-23 09:16 xnabx 閱讀(152) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 渑池县| 商水县| 胶州市| 邓州市| 宜川县| 砚山县| 陇南市| 肃宁县| 漳平市| 新绛县| 于田县| 张家界市| 道孚县| 建湖县| 油尖旺区| 广安市| 明水县| 綦江县| 凌海市| 揭阳市| 德令哈市| 桦甸市| 西华县| 习水县| 静海县| 丹阳市| 繁昌县| 桐庐县| 宜都市| 什邡市| 琼海市| 宣威市| 泸州市| 石棉县| 双牌县| 日照市| 北宁市| 永年县| 全州县| 霍山县| 吉木萨尔县|