隨筆-61  評(píng)論-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();
          ??? }

          ??? /**
          ???? * 將字符串編碼格式轉(zhuǎn)成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 閱讀(156) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 瑞安市| 万山特区| 繁昌县| 南丹县| 织金县| 新密市| 梨树县| 新河县| 岚皋县| 平南县| 藁城市| 张家界市| 行唐县| 迁安市| 舒城县| 青阳县| 连平县| 中宁县| 嘉黎县| 太谷县| 左权县| 通道| 丁青县| 凤冈县| 南川市| 宿松县| 东港市| 文化| 天峻县| 凭祥市| 平谷区| 镇康县| 林甸县| 阿图什市| 黄山市| 清新县| 花莲县| 太湖县| 拉孜县| 东乡族自治县| 游戏|