隨筆-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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 新津县| 长岛县| 黑河市| 樟树市| 柏乡县| 防城港市| 颍上县| 民和| 专栏| 鲁山县| 尖扎县| 邛崃市| 玉溪市| 雅安市| 济南市| 吴桥县| 留坝县| 东乡族自治县| 简阳市| 望江县| 新余市| 鄂尔多斯市| 张家口市| 大新县| 金湖县| 筠连县| 图们市| 五指山市| 景东| 洞口县| 英吉沙县| 建德市| 揭西县| 巍山| 玉门市| 黔西| 五华县| 高安市| 图们市| 同德县| 万盛区|