青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

逛奔的蝸牛

我不聰明,但我會很努力

   ::  :: 新隨筆 ::  ::  :: 管理 ::

/* 輸出

Original:       黃   彪彪

to unicode:     \u9EC4\ \t\u5F6A\u5F6A

from unicode:   黃   彪彪

使用命令轉換: native2ascii -encoding utf-8 a.txt a.txt

Java的properties屬性文件會把字符先轉換成unicode的形式存儲.

*/


import java.io.UnsupportedEncodingException;


public class UnicodeConverter {

    public static void main(String[] args) throws UnsupportedEncodingException {

        String s = "黃 \t彪\u5F6A";

        System.out.println("Original:\t\t" + s);


        s = toEncodedUnicode(s, true);

        System.out.println("to unicode:\t\t" + s);


        s = fromEncodedUnicode(s.toCharArray(), 0, s.length());

        System.out.println("from unicode:\t" + s);

    }


    private static final char[] hexDigit = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A',

            'B', 'C', 'D', 'E', 'F' };


    private static char toHex(int nibble) {

        return hexDigit[(nibble & 0xF)];

    }


    /**

     * 將字符串編碼成 Unicode 形式的字符串. 如 "黃" to "\u9EC4"

     * Converts unicodes to encoded \\uxxxx and escapes

     * special characters with a preceding slash

     * 

     * @param theString

     *        待轉換成Unicode編碼的字符串。

     * @param escapeSpace

     *        是否忽略空格,為true時在空格后面是否加個反斜杠。

     * @return 返回轉換后Unicode編碼的字符串。

     */

    public static String toEncodedUnicode(String theString, boolean escapeSpace) {

        int len = theString.length();

        int bufLen = len * 2;

        if (bufLen < 0) {

            bufLen = Integer.MAX_VALUE;

        }

        StringBuffer outBuffer = new StringBuffer(bufLen);


        for (int x = 0; x < len; x++) {

            char aChar = theString.charAt(x);

            // Handle common case first, selecting largest block that

            // avoids the specials below

            if ((aChar > 61) && (aChar < 127)) {

                if (aChar == '\\') {

                    outBuffer.append('\\');

                    outBuffer.append('\\');

                    continue;

                }

                outBuffer.append(aChar);

                continue;

            }

            

            switch (aChar) {

            case ' ':

                if (x == 0 || escapeSpace) outBuffer.append('\\');

                outBuffer.append(' ');

                break;

            case '\t':

                outBuffer.append('\\');

                outBuffer.append('t');

                break;

            case '\n':

                outBuffer.append('\\');

                outBuffer.append('n');

                break;

            case '\r':

                outBuffer.append('\\');

                outBuffer.append('r');

                break;

            case '\f':

                outBuffer.append('\\');

                outBuffer.append('f');

                break;

            case '=': // Fall through

            case ':': // Fall through

            case '#': // Fall through

            case '!':

                outBuffer.append('\\');

                outBuffer.append(aChar);

                break;

            default:

                if ((aChar < 0x0020) || (aChar > 0x007e)) {

                    // 每個unicode有16位,每四位對應的16進制從高位保存到低位

                    outBuffer.append('\\');

                    outBuffer.append('u');

                    outBuffer.append(toHex((aChar >> 12) & 0xF));

                    outBuffer.append(toHex((aChar >> 8) & 0xF));

                    outBuffer.append(toHex((aChar >> 4) & 0xF));

                    outBuffer.append(toHex(aChar & 0xF));

                } else {

                    outBuffer.append(aChar);

                }

            }

        }

        return outBuffer.toString();

    }


    /**

     * 從 Unicode 形式的字符串轉換成對應的編碼的特殊字符串。 如 "\u9EC4" to "黃".

     * Converts encoded \\uxxxx to unicode chars

     * and changes special saved chars to their original forms

     * 

     * @param in

     *        Unicode編碼的字符數組。

     * @param off

     *        轉換的起始偏移量。

     * @param len

     *        轉換的字符長度。

     * @param convtBuf

     *        轉換的緩存字符數組。

     * @return 完成轉換,返回編碼前的特殊字符串。

     */

    public static String fromEncodedUnicode(char[] in, int off, int len) {

        char aChar;

        char[] out = new char[len]; // 只短不長

        int outLen = 0;

        int end = off + len;


        while (off < end) {

            aChar = in[off++];

            if (aChar == '\\') {

                aChar = in[off++];

                if (aChar == 'u') {

                    // Read the xxxx

                    int value = 0;

                    for (int i = 0; i < 4; i++) {

                        aChar = in[off++];

                        switch (aChar) {

                        case '0':

                        case '1':

                        case '2':

                        case '3':

                        case '4':

                        case '5':

                        case '6':

                        case '7':

                        case '8':

                        case '9':

                            value = (value << 4) + aChar - '0';

                            break;

                        case 'a':

                        case 'b':

                        case 'c':

                        case 'd':

                        case 'e':

                        case 'f':

                            value = (value << 4) + 10 + aChar - 'a';

                            break;

                        case 'A':

                        case 'B':

                        case 'C':

                        case 'D':

                        case 'E':

                        case 'F':

                            value = (value << 4) + 10 + aChar - 'A';

                            break;

                        default:

                            throw new IllegalArgumentException("Malformed \\uxxxx encoding.");

                        }

                    }

                    out[outLen++] = (char) value;

                } else {

                    if (aChar == 't') {

                        aChar = '\t';

                    } else if (aChar == 'r') {

                        aChar = '\r';

                    } else if (aChar == 'n') {

                        aChar = '\n';

                    } else if (aChar == 'f') {

                        aChar = '\f';

                    }

                    out[outLen++] = aChar;

                }

            } else {

                out[outLen++] = (char) aChar;

            }

        }

        return new String(out, 0, outLen);

    }

}

posted on 2010-12-21 01:39 逛奔的蝸牛 閱讀(5220) 評論(1)  編輯 收藏 引用 所屬分類: Java

評論

# re: Java:轉換漢字為unicode形式的字符串和轉換unicode形式字符串轉換成漢字 2013-07-04 10:52 jd
jd?  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产精品成人一区二区 | 久久久久久香蕉网| 亚洲国内精品在线| 91久久香蕉国产日韩欧美9色| 亚洲国产日韩在线| 亚洲国产欧美在线人成| 亚洲精品久久久久久久久久久久 | 国产精品资源| 在线电影一区| 亚洲网友自拍| 久久久国产一区二区| 欧美成黄导航| 亚洲午夜av在线| 久久人人看视频| 欧美午夜精品久久久| 激情视频一区二区三区| 一本色道久久综合亚洲精品小说| 欧美一区久久| 亚洲人成在线播放网站岛国| 午夜久久久久久| 欧美另类变人与禽xxxxx| 国产日韩欧美二区| 中文一区字幕| 欧美成人精品一区二区| 一区二区三区高清| 久久综合成人精品亚洲另类欧美| 欧美色欧美亚洲另类二区| 国产一区久久| 亚洲欧美国产不卡| 91久久精品日日躁夜夜躁欧美| 亚洲欧美日本伦理| 欧美日韩国产成人在线免费| 一区二区在线看| 午夜欧美不卡精品aaaaa| 最新成人av网站| 久久亚洲影音av资源网| 国产人久久人人人人爽| 黄色成人av网| 久久久国产91| 日韩一级大片| 亚洲图色在线| 美日韩精品免费观看视频| 99精品久久久| 美女黄毛**国产精品啪啪| 国产精品资源在线观看| 一二三区精品福利视频| 欧美成人一区二区| 久久本道综合色狠狠五月| 国产精品毛片在线看| 亚洲午夜免费福利视频| 亚洲国产三级在线| 另类尿喷潮videofree| 国产亚洲精品aa| 欧美一区永久视频免费观看| 9i看片成人免费高清| 欧美—级a级欧美特级ar全黄| 好吊视频一区二区三区四区 | 夜夜嗨av色综合久久久综合网| 欧美成人午夜激情在线| 亚洲国产一区视频| 欧美华人在线视频| 免费看亚洲片| 日韩亚洲欧美精品| 日韩视频永久免费| 国产精品美女www爽爽爽视频| 销魂美女一区二区三区视频在线| 亚洲小说欧美另类社区| 国产日韩精品视频一区| 久久九九热免费视频| 久久久综合网| 日韩一级精品| 亚洲一区二区网站| 狠狠干狠狠久久| 欧美激情视频一区二区三区在线播放| 久久九九久久九九| 亚洲欧洲综合另类| 日韩午夜电影| 国产精品入口福利| 老司机免费视频一区二区| 欧美成人免费小视频| 亚洲在线视频免费观看| 欧美一区免费| 亚洲片区在线| 亚洲一卡二卡三卡四卡五卡| 国产伊人精品| 亚洲精品视频在线观看免费| 国产精品一区二区男女羞羞无遮挡| 久久成人国产| 欧美成人激情视频| 性久久久久久久| 男人天堂欧美日韩| 亚洲一区二区三区精品视频| 久久久999| 亚洲午夜电影在线观看| 久久精品夜色噜噜亚洲a∨| 国产日本亚洲高清| 亚洲国产成人久久| 国产精品一区免费在线观看| 嫩草影视亚洲| 国产精品免费看片| 亚洲福利小视频| 国产久一道中文一区| 亚洲福利视频网| 国产一区二区高清| 一区二区欧美视频| 亚洲国产精品一区二区www在线| 在线亚洲欧美视频| 亚洲免费大片| 噜噜爱69成人精品| 久久精品国产2020观看福利| 欧美丝袜一区二区三区| 亚洲国产成人av在线| 国产一区二区三区在线观看网站| 9色国产精品| 亚洲精品在线三区| 久久久精品网| 久久成人免费网| 国产精品a级| 亚洲精品日日夜夜| 亚洲人成绝费网站色www| 久久精品视频在线观看| 欧美影院在线| 欧美三级午夜理伦三级中视频| 亚洲福利电影| 亚洲人成网站色ww在线| 久久久久久久久久久久久9999| 久久se精品一区精品二区| 国产精品久久久免费| 亚洲视频axxx| 欧美在线观看一区二区| 国产美女在线精品免费观看| 亚洲女优在线| 久久精品国产第一区二区三区最新章节| 欧美色图首页| 亚洲调教视频在线观看| 亚洲欧美日韩精品久久久| 国产精品青草久久| 亚洲视频网站在线观看| 亚洲综合色噜噜狠狠| 国产精品激情| 欧美一二三区精品| 久久先锋影音av| 亚洲激情视频在线| 欧美激情视频一区二区三区免费| 亚洲国产视频a| 一区二区三区日韩欧美精品| 欧美日韩成人一区| 亚洲视频导航| 久久久久久国产精品一区| 在线观看不卡| 欧美日韩国产精品| 制服丝袜激情欧洲亚洲| 久久精品道一区二区三区| 在线观看久久av| 欧美人与性动交α欧美精品济南到 | 国产综合色精品一区二区三区| 久久精品午夜| 91久久国产精品91久久性色| 一区二区三区毛片| 国产视频亚洲| 欧美成人xxx| 久久精品91久久香蕉加勒比| 一区二区三区在线高清| 欧美成年人视频网站| a4yy欧美一区二区三区| 欧美影院成人| 日韩视频一区二区三区| 国产精品私人影院| 欧美中文字幕在线视频| 亚洲国产另类精品专区| 欧美亚洲在线| 亚洲精品一二三| 国产日韩欧美一区二区| 欧美阿v一级看视频| 午夜精品久久久久99热蜜桃导演| 欧美电影在线| 欧美一区二区三区视频在线观看| 在线日韩电影| 国产乱理伦片在线观看夜一区| 久久综合九色九九| 亚洲欧美日韩精品久久| 91久久精品日日躁夜夜躁欧美 | 日韩亚洲国产欧美| 久久在线免费观看| 亚洲男女自偷自拍| 亚洲美女中出| 亚洲第一主播视频| 国产亚洲精品aa| 国产精品美女| 欧美三级电影网| 欧美jjzz| 久久麻豆一区二区| 亚洲女同精品视频| 99视频在线精品国自产拍免费观看| 久久影视三级福利片| 久久激情一区| 欧美一区二区观看视频| 亚洲在线观看视频网站| 亚洲网站在线播放| 亚洲视频导航|