飛翔的起點(diǎn)

          從這里出發(fā)

          導(dǎo)航

          <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 轉(zhuǎn)換格式 */
            public static final String UTF_8 = "UTF-8";

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

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

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

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

            /**
             * 將字符編碼轉(zhuǎn)換成US-ASCII碼
             */
            public String toASCII(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, US_ASCII);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成ISO-8859-1碼
             */
            public String toISO_8859_1(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, ISO_8859_1);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成UTF-8碼
             */
            public String toUTF_8(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_8);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成UTF-16BE碼
             */
            public String toUTF_16BE(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16BE);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成UTF-16LE碼
             */
            public String toUTF_16LE(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16LE);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成UTF-16碼
             */
            public String toUTF_16(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, UTF_16);
            }
            /**
             * 將字符編碼轉(zhuǎn)換成GBK碼
             */
            public String toGBK(String str) throws UnsupportedEncodingException{
             return this.changeCharset(str, GBK);
            }
           
            /**
             * 字符串編碼轉(zhuǎn)換的實(shí)現(xiàn)方法
             * @param str  待轉(zhuǎn)換編碼的字符串
             * @param newCharset 目標(biāo)編碼
             * @return
             * @throws UnsupportedEncodingException
             */
            public String changeCharset(String str, String newCharset)
              throws UnsupportedEncodingException {
             if (str != null) {
              //用默認(rèn)字符編碼解碼字符串。
              byte[] bs = str.getBytes();
              //用新的字符編碼生成字符串
              return new String(bs, newCharset);
             }
             return null;
            }
            /**
             * 字符串編碼轉(zhuǎn)換的實(shí)現(xiàn)方法
             * @param str  待轉(zhuǎn)換編碼的字符串
             * @param oldCharset 原編碼
             * @param newCharset 目標(biāo)編碼
             * @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("轉(zhuǎn)換成GBK碼: " + gbk);
             System.out.println();
             String ascii = test.toASCII(str);
             System.out.println("轉(zhuǎn)換成US-ASCII碼: " + ascii);
             gbk = test.changeCharset(ascii,ChangeCharset.US_ASCII, ChangeCharset.GBK);
             System.out.println("再把ASCII碼的字符串轉(zhuǎn)換成GBK碼: " + gbk);
             System.out.println();
             String iso88591 = test.toISO_8859_1(str);
             System.out.println("轉(zhuǎn)換成ISO-8859-1碼: " + iso88591);
             gbk = test.changeCharset(iso88591,ChangeCharset.ISO_8859_1, ChangeCharset.GBK);
             System.out.println("再把ISO-8859-1碼的字符串轉(zhuǎn)換成GBK碼: " + gbk);
             System.out.println();
             String utf8 = test.toUTF_8(str);
             System.out.println("轉(zhuǎn)換成UTF-8碼: " + utf8);
             gbk = test.changeCharset(utf8,ChangeCharset.UTF_8, ChangeCharset.GBK);
             System.out.println("再把UTF-8碼的字符串轉(zhuǎn)換成GBK碼: " + gbk);
             System.out.println();
             String utf16be = test.toUTF_16BE(str);
             System.out.println("轉(zhuǎn)換成UTF-16BE碼:" + utf16be);
             gbk = test.changeCharset(utf16be,ChangeCharset.UTF_16BE, ChangeCharset.GBK);
             System.out.println("再把UTF-16BE碼的字符串轉(zhuǎn)換成GBK碼: " + gbk);
            }
          }

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 准格尔旗| 南漳县| 金乡县| 新蔡县| 峨眉山市| 竹山县| 岳西县| 贵州省| 锦州市| 都江堰市| 白银市| 虹口区| 敦化市| 洛浦县| 尖扎县| 家居| 鄯善县| 麦盖提县| 基隆市| 行唐县| 扶风县| 汉中市| 玉溪市| 禹城市| 南靖县| 额济纳旗| 区。| 方城县| 新巴尔虎左旗| 黄山市| 改则县| 广丰县| 彭阳县| 萍乡市| 堆龙德庆县| 元阳县| 崇信县| 东乌珠穆沁旗| 汉川市| 六枝特区| 南宫市|