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

简介: Unicode编码和中文互转(JAVA实现)
  /**
   * 获取字符串的unicode编码 汉字“木”的Unicode 码点为Ox6728
   *
   * @param s
   *            木
   * @return \ufeff\u6728 \ufeff控制字符 用来表示「字节次序标记(Byte Order Mark)」不占用宽度
   *         在java中一个char是采用unicode存储的 占用2个字节 比如 汉字木 就是 Ox6728
   *         4bit+4bit+4bit+4bit=2字节
   */
  public static String stringToUnicode(String s) {
    try {
      StringBuffer out = new StringBuffer("");
      // 直接获取字符串的unicode二进制
      byte[] bytes = s.getBytes("unicode");
      // 然后将其byte转换成对应的16进制表示即可
      for (int i = 0; i < bytes.length - 1; i += 2) {
        out.append("\\u");
        String str = Integer.toHexString(bytes[i + 1] & 0xff);
        for (int j = str.length(); j < 2; j++) {
          out.append("0");
        }
        String str1 = Integer.toHexString(bytes[i] & 0xff);
        out.append(str1);
        out.append(str);
      }
      return out.toString();
    } catch (UnsupportedEncodingException e) {
      e.printStackTrace();
      return null;
    }
  }
  /**
   * Unicode转 汉字字符串
   *
   * @param str
   *            \u6728
   * @return '木' 26408
   */
  public static String unicodeToString(String str) {
 
    Pattern pattern = Pattern.compile("(\\\\u(\\p{XDigit}{4}))");
    Matcher matcher = pattern.matcher(str);
    char ch;
    while (matcher.find()) {
      // group 6728
      String group = matcher.group(2);
      // ch:'木' 26408
      ch = (char) Integer.parseInt(group, 16);
      // group1 \u6728
      String group1 = matcher.group(1);
      str = str.replace(group1, ch + "");
    }
    return str;
  }
目录
相关文章
|
17小时前
|
SQL 存储 安全
Java中的安全编码实践全解析
Java中的安全编码实践全解析
|
1天前
|
SQL 存储 安全
如何在Java中进行安全编码?
如何在Java中进行安全编码?
|
2天前
|
存储 Web App开发 编解码
Java常见的编码方式
Java常见的编码方式
12 0
|
6天前
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
分享JavaWeb中filter过滤器的案例妙用 - 脏话过滤/编码过滤/代码过滤
9 0
|
9天前
|
算法 Java 应用服务中间件
【Java】提高千倍效率的35个编码小技巧
【Java】提高千倍效率的35个编码小技巧
15 4
|
9天前
|
Java 程序员 API
Java中的函数式编程:一种现代化的编码实践
在Java的世界中,面向对象编程(OOP)长期占据着主导地位。然而,随着软件工程的不断进步和编程语言的发展,函数式编程(FP)作为一种更加简洁、表达力更强的编程范式,逐渐在Java社区中获得了认可。本文将深入探讨Java如何拥抱函数式编程的概念,包括Lambda表达式、Stream API等特性的介绍,以及它们如何改变了我们编写和维护代码的方式。通过实际示例,我们将揭示函数式编程如何在提高代码可读性、简化并行处理等方面展现其优势,同时也指出了在学习和应用这一范式时可能遇到的挑战与解决策略。
|
11天前
|
Java Apache
Java将一个对象的属性复制到另一个对象,如何编码
【6月更文挑战第15天】Java将一个对象的属性复制到另一个对象,如何编码
11 3
|
13天前
|
JavaScript Java Android开发
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
在cmd中运行javac编译java文件报错: 编码GBK的不可映射字符、 非法字符: \65279
15 1
|
存储 设计模式 IDE
阿里Java编码手册实战详解-OOP规约
阿里Java编码手册实战详解-OOP规约
112 0
|
存储 安全 Java
阿里Java编码手册实战详解-集合处理篇
阿里Java编码手册实战详解-集合处理篇
105 0