java汉字和unicode互转
来源:互联网 发布:网络用语贼g2什么意思 编辑:程序博客网 时间:2024/05/22 12:54
package com.imiansha.baseframe.commom.util;import java.lang.Character.UnicodeBlock;/** * @ClassName UnicodeTool.java * @Description 类实现描述:汉字和unicode互转 * @author leon 2015年12月11日 上午10:57:28 * @CopyRight 安徽中方电子商务有限公司 */public class UnicodeTool { /** * 中文转换成 unicode * * @author leon 2016-3-15 * @param inStr * @return */ public static String encodeUnicode(String inStr) { char[] myBuffer = inStr.toCharArray(); StringBuffer sb = new StringBuffer(); for (int i = 0; i < inStr.length(); i++) { char ch = myBuffer[i]; if (ch < 10) { sb.append("\\u000" + (int) ch); continue; } UnicodeBlock ub = UnicodeBlock.of(ch); if (ub == UnicodeBlock.BASIC_LATIN) { // 英文及数字等 sb.append(myBuffer[i]); } else if (ub == UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS) { // 全角半角字符 int j = myBuffer[i] - 65248; sb.append((char) j); } else { // 汉字 int s = myBuffer[i]; String hexS = Integer.toHexString(Math.abs(s)); String unicode = "\\u" + hexS; sb.append(unicode.toLowerCase()); } } return sb.toString(); } /** * unicode 转换成 中文 * * @author leon 2016-3-15 * @param theString * @return */ public static String decodeUnicode(String theString) { char aChar; int len = theString.length(); StringBuffer outBuffer = new StringBuffer(len); for (int x = 0; x < len;) { aChar = theString.charAt(x++); if (aChar == '\\') { aChar = theString.charAt(x++); if (aChar == 'u') { // Read the xxxx int value = 0; for (int i = 0; i < 4; i++) { aChar = theString.charAt(x++); switch (aChar) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': value = (value << 4) + aChar - '0'; break; case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': value = (value << 4) + 10 + aChar - 'a'; break; case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': value = (value << 4) + 10 + aChar - 'A'; break; default: throw new IllegalArgumentException("Malformed \\uxxxx encoding."); } } outBuffer.append((char) value); } else { if (aChar == 't') aChar = '\t'; else if (aChar == 'r') aChar = '\r'; else if (aChar == 'n') aChar = '\n'; else if (aChar == 'f') aChar = '\f'; outBuffer.append(aChar); } } else outBuffer.append(aChar); } return outBuffer.toString(); }}
0 0
- java汉字和unicode互转
- java unicode 转为汉字
- java 汉字转Unicode
- java 汉字转Unicode
- Java 汉字转unicode
- java 汉字转Unicode
- Unicode和汉字转化
- Java:转换汉字为unicode形式的字符串和转换unicode形式字符串转换成汉字
- Java:把汉字为unicode形式的字符串和把unicode字符串转换成汉字
- Java中Unicode编码和汉字之间的转换
- Android- Unicode编码 和 汉字转换( java实现 , javascript实现)
- java之配置文件中的汉字和unicode相互转换
- java unicode编码转汉字
- java 常用unicode编码汉字
- java将unicode转为汉字
- Android Java Unicode转为汉字
- unicode和汉字互转
- \u Unicode和汉字转化
- 磁盘IOPS计算与测量
- <permission>和<uses-permission>
- [LeetCode]334. Increasing Triplet Subsequence
- sql语句统计求和两种 写的方式
- Linux下Oracle 12c的卸载
- java汉字和unicode互转
- SSH之Struts2框架--简单登陆模拟
- Oracle Study之--Oracle 11gR2构建RAC之hosts文件故障
- push本地代码到github出错
- android 安装软件进程的框
- vim教程---version1.7
- ESP8266-使用ESP8266 NONOS SDK的JSON API
- Shell脚本中的:>/dev/null 2>&1 的作用
- js中的立即执行函数