【Java】Unicode和字符串互转
2024-08-25 05:53:44
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 新世界
最新文章
- js变量问题
- 跨域的get和post的区别
- 10.5.2 Boot Block 启动块 - 操作系统教程
- Jquery easyui-combobox 的一个BUG
- windows server2012 r2 上 安装 IIS8.5
- Word Amalgamation(枚举 + 排序)
- ACE - Ubuntu下环境搭建
- Puppet master/agent installation on RHEL7
- C Primer Plus学习笔记
- STM32 驱动12864液晶显示汉字、图片、画点、横线、竖线、斜线
- android_重写button样式
- Python 100例(上)
- Robots协议
- mybatis的#{}占位符和${}拼接符的区别
- docker基础及安装
- 使用STS创建springboot项目pom.xml文件报错org.apache.maven.archiver.MavenArchiver.getManifest
- Phpstorm数组对齐设置
- idHTTP 向网站发送json格式数据
- UWA 技术分享连载 转载
- SmartUpload相关类的说明