• 【Java】Unicode和字符串互转


    Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。

    public class ConvertUtils {
    
        /**
         * 字符串转unicode
         * @param str
         * @return
         */
        public static String str2Unicode(String str) {
            str = (str == null ? "" : str);
            String tmp;
            StringBuffer sb = new StringBuffer(1000);
            char c;
            int i, j;
            sb.setLength(0);
            for (i = 0; i < str.length(); i++) {
                c = str.charAt(i);
                sb.append("\u");
                j = (c >>> 8); // 取出高8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
                j = (c & 0xFF); // 取出低8位
                tmp = Integer.toHexString(j);
                if (tmp.length() == 1)
                    sb.append("0");
                sb.append(tmp);
            }
            return sb.toString();
        }
        
        /**
         * 字符串转unicode
         * 
         * @param str
         * @return
         */
        public static String strToUnicode(String str) {
            StringBuilder sb = new StringBuilder();
            char[] c = str.toCharArray();
            for (int i = 0; i < c.length; i++) {
                sb.append("\u" + Integer.toHexString(c[i]));
            }
            return sb.toString();
        }
     
        /**
         * unicode转字符串
         * 
         * @param unicode
         * @return
         */
        public static String unicodeToStr(String unicode) {
            StringBuilder sb = new StringBuilder();
            String[] hex = unicode.split("\\u");
            for (int i = 1; i < hex.length; i++) {
                int index = Integer.parseInt(hex[i], 16);
                sb.append((char) index);
            }
            return sb.toString();
        }
    
        public static void main(String[] args) {
            String ucode=str2Unicode("Hollow 世界");
            System.out.println(ucode);
            System.out.println(unicodeToStr(ucode)+"
    ");
            
            ucode=strToUnicode("Hollow 新世界");
            System.out.println(ucode);
            System.out.println(unicodeToStr(ucode));
        }
    }

    输出:

    u0048u006fu006cu006cu006fu0077u0020u4e16u754c
    Hollow 世界
    
    u48u6fu6cu6cu6fu77u20u65b0u4e16u754c
    Hollow 新世界
  • 相关阅读:
    Jquery Ajax 调用 WebService
    Dapper.NET
    HTML5 canvas标签
    SQL内外左右交叉连接
    水晶报表纵向重复
    AngularJS 菜鸟
    什么是MVC框架?
    伪类和伪元素的区别
    常用的本地存储-----cookie篇
    JavaScript中基本数据类型和引用数据类型的区别
  • 原文地址:https://www.cnblogs.com/heyang78/p/11819892.html
Copyright © 2020-2023  润新知