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)+"\n");

        ucode=strToUnicode("Hollow 新世界");
        System.out.println(ucode);
        System.out.println(unicodeToStr(ucode));
    }
}

输出:

\u0048\u006f\u006c\u006c\u006f\u0077\u0020\u4e16\u754c
Hollow 世界

\u48\u6f\u6c\u6c\u6f\u77\u20\u65b0\u4e16\u754c
Hollow 新世界

最新文章

  1. js变量问题
  2. 跨域的get和post的区别
  3. 10.5.2 Boot Block 启动块 - 操作系统教程
  4. Jquery easyui-combobox 的一个BUG
  5. windows server2012 r2 上 安装 IIS8.5
  6. Word Amalgamation(枚举 + 排序)
  7. ACE - Ubuntu下环境搭建
  8. Puppet master/agent installation on RHEL7
  9. C Primer Plus学习笔记
  10. STM32 驱动12864液晶显示汉字、图片、画点、横线、竖线、斜线
  11. android_重写button样式
  12. Python 100例(上)
  13. Robots协议
  14. mybatis的#{}占位符和${}拼接符的区别
  15. docker基础及安装
  16. 使用STS创建springboot项目pom.xml文件报错org.apache.maven.archiver.MavenArchiver.getManifest
  17. Phpstorm数组对齐设置
  18. idHTTP 向网站发送json格式数据
  19. UWA 技术分享连载 转载
  20. SmartUpload相关类的说明

热门文章

  1. MongoDB的删除操作
  2. CentOS7安装CDH 第十三章:CDH资源池配置
  3. Django之form表单详解
  4. http接口测试工具-Advanced-REST-client
  5. C++——多维数组动态开辟与释放
  6. kvm虚拟机控制台登录配置
  7. 利用videojs自动播放下一个
  8. NodeJS开发博客(三) 数据的保存
  9. SpringCloud 学习(5) --- Zuul(一)基本概念、配置
  10. How to Set Up a NFS Server on Debian 10 Buster