飛翔的起點

          從這里出發(fā)

          導航

          <2009年9月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          統(tǒng)計

          常用鏈接

          留言簿(5)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          java中的編碼方法

          package src;

          import java.io.UnsupportedEncodingException;

          public class ChangeCharset {
            /** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁塊 */
            public static final String US_ASCII = "US-ASCII";

            /** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */
            public static final String ISO_8859_1 = "ISO-8859-1";

            /** 8 位 UCS 轉換格式 */
            public static final String UTF_8 = "UTF-8";

            /** 16 位 UCS 轉換格式,Big Endian(最低地址存放高位字節(jié))字節(jié)順序 */
            public static final String UTF_16BE = "UTF-16BE";

            /** 16 位 UCS 轉換格式,Little-endian(最高地址存放低位字節(jié))字節(jié)順序 */
            public static final String UTF_16LE = "UTF-16LE";

            /** 16 位 UCS 轉換格式,字節(jié)順序由可選的字節(jié)順序標記來標識 */
            public static final String UTF_16 = "UTF-16";

            /** 中文超大字符集 */
            public static final String GBK = "GBK";

            /**
             * 將字符編碼轉換成US-ASCII碼
             */
            public String toASCII(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, US_ASCII);
            }
            /**
             * 將字符編碼轉換成ISO-8859-1碼
             */
            public String toISO_8859_1(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, ISO_8859_1);
            }
            /**
             * 將字符編碼轉換成UTF-8碼
             */
            public String toUTF_8(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_8);
            }
            /**
             * 將字符編碼轉換成UTF-16BE碼
             */
            public String toUTF_16BE(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16BE);
            }
            /**
             * 將字符編碼轉換成UTF-16LE碼
             */
            public String toUTF_16LE(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16LE);
            }
            /**
             * 將字符編碼轉換成UTF-16碼
             */
            public String toUTF_16(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16);
            }
            /**
             * 將字符編碼轉換成GBK碼
             */
            public String toGBK(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, GBK);
            }
           
            /**
             * 字符串編碼轉換的實現(xiàn)方法
             * @param str  待轉換編碼的字符串
             * @param newCharset 目標編碼
             * @return
             * @throws UnsupportedEncodingException
             */
            public String changeCharset(String str, String newCharset)
              throws UnsupportedEncodingException {
             if (str != null) {
              //用默認字符編碼解碼字符串。
              byte[] bs = str.getBytes();
              //用新的字符編碼生成字符串
              return new String(bs, newCharset);
             }
             return null;
            }
            /**
             * 字符串編碼轉換的實現(xiàn)方法
             * @param str  待轉換編碼的字符串
             * @param oldCharset 原編碼
             * @param newCharset 目標編碼
             * @return
             * @throws UnsupportedEncodingException
             */
            public String changeCharset(String str, String oldCharset, String newCharset)
              throws UnsupportedEncodingException {
             if (str != null) {
              //用舊的字符編碼解碼字符串。解碼可能會出現(xiàn)異常。
              byte[] bs = str.getBytes(oldCharset);
              //用新的字符編碼生成字符串
              return new String(bs, newCharset);
             }
             return null;
            }

            public static void main(String[] args) throws UnsupportedEncodingException {
             ChangeCharset test = new ChangeCharset();
             String str = "This is a 中文的 String!";
             System.out.println("str: " + str);
             String gbk = test.toGBK(str);
             System.out.println("轉換成GBK碼: " + gbk);
             System.out.println();
             String ascii = test.toASCII(str);
             System.out.println("轉換成US-ASCII碼: " + ascii);
             gbk = test.changeCharset(ascii,ChangeCharset.US_ASCII, ChangeCharset.GBK);
             System.out.println("再把ASCII碼的字符串轉換成GBK碼: " + gbk);
             System.out.println();
             String iso88591 = test.toISO_8859_1(str);
             System.out.println("轉換成ISO-8859-1碼: " + iso88591);
             gbk = test.changeCharset(iso88591,ChangeCharset.ISO_8859_1, ChangeCharset.GBK);
             System.out.println("再把ISO-8859-1碼的字符串轉換成GBK碼: " + gbk);
             System.out.println();
             String utf8 = test.toUTF_8(str);
             System.out.println("轉換成UTF-8碼: " + utf8);
             gbk = test.changeCharset(utf8,ChangeCharset.UTF_8, ChangeCharset.GBK);
             System.out.println("再把UTF-8碼的字符串轉換成GBK碼: " + gbk);
             System.out.println();
             String utf16be = test.toUTF_16BE(str);
             System.out.println("轉換成UTF-16BE碼:" + utf16be);
             gbk = test.changeCharset(utf16be,ChangeCharset.UTF_16BE, ChangeCharset.GBK);
             System.out.println("再把UTF-16BE碼的字符串轉換成GBK碼: " + gbk);
            }
          }

          posted on 2009-09-23 14:25 forgood 閱讀(298) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 图们市| 江阴市| 浏阳市| 盖州市| 静宁县| 韶关市| 明星| 正镶白旗| 丰县| 睢宁县| 阿瓦提县| 广西| 青州市| 布尔津县| 桂东县| 仙游县| 罗甸县| 灌云县| 拉孜县| 宣化县| 建始县| 平罗县| 马鞍山市| 台江县| 迁安市| 五原县| 北安市| 嘉荫县| 象山县| 普宁市| 罗田县| 桂阳县| 丰县| 绥芬河市| 衢州市| 武山县| 拉孜县| 会同县| 元氏县| 甘洛县| 定远县|