• 【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 新世界
  • 相关阅读:
    结对作业
    小学算术题四则运算(升级)
    自动生成小学四则运算题目(Python实现)
    《基于CMMI的软件工程及实训指导》第一章 软件工程基础
    使用 python 进行微信好友分析
    中国大学排名
    python小程序测试
    爬虫测试
    体育竞技分析

  • 原文地址:https://www.cnblogs.com/heyang78/p/11819892.html
Copyright © 2020-2023  润新知