Unicode编码和中文互转(JAVA实现)

2018-06-11  本文已影响0人  德玛西亚噜啦啦

//中文转字符串

public static String gbEncoding(final String gbString) {  //gbString = "测试" 

        char[] utfBytes = gbString.toCharArray();  //utfBytes = [测, 试] 

        String unicodeBytes = "";   

        for (int byteIndex = 0; byteIndex < utfBytes.length; byteIndex++) {   

            String hexB = Integer.toHexString(utfBytes[byteIndex]);  //转换为16进制整型字符串 

              if (hexB.length() <= 2) {   

                  hexB = "00" + hexB;   

              }   

              unicodeBytes = unicodeBytes + "\\u" + hexB;   

        }   

        System.out.println("unicodeBytes is: " + unicodeBytes);   

        return unicodeBytes;   

    }

//Unicode转中文

    public static String decodeUnicode(final String dataStr) {   

        int start = 0;   

        int end = 0;   

        final StringBuffer buffer = new StringBuffer();   

        while (start > -1) {   

            end = dataStr.indexOf("\\u", start + 2);   

            String charStr = "";   

            if (end == -1) {   

                charStr = dataStr.substring(start + 2, dataStr.length());   

            } else {   

                charStr = dataStr.substring(start + 2, end);   

            }   

            char letter = (char) Integer.parseInt(charStr, 16); // 16进制parse整形字符串。   

            buffer.append(new Character(letter).toString());   

            start = end;   

        }   

        return buffer.toString();   

    }

上一篇下一篇

猜你喜欢

热点阅读