unicode编码简而言之就是将每一个字符用16位2进制数标识。但是通常都用4位的16进制数标识。
例如:
1)中文字符串"你好"的unicode码为:\u<?XML:NAMESPACE PREFIX = ST1 />4f60\u597d;
2)英文字符串"ab"的unicode码为:\u0061\u0062;
其中\u是标识unicode码用的,后面的4位16进制数则是对应字符的unicode码。

unicode码在J2EE项目中应用广泛,java对unicode码提供了很好的支持。例如国际化,则是unicode的经典运用。
那么unicode的编码规则具体是什么,如何用程序实现?

1、unicode编码规则

unicode码对每一个字符用4位16进制数表示。具体规则是:将一个字符(char)的高8位与低8位分别取出,转化为16进制数,
如果转化的16进制数的长度不足2位,则在其后补0,然后将高、低8位转成的16进制字符串拼接起来并在前面补上"\u" 即可。

2、转码程序

1)字符串转unicode

/**
* 将字符串转成unicode
* @param str 待转字符串
* @return unicode字符串
*/
public String convert(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 (new String(sb));
}

2)unicode转成字符串,与上述过程反向操作即可
/**
* 将unicode 字符串
* @param str 待转字符串
* @return 普通字符串
*/
public String revert(String str)
{
str = (str == null ? "" : str);
if (str.indexOf("\\u") == -1)//如果不是unicode码则原样返回
return str;

StringBuffer sb = new StringBuffer(1000);

for (int i = 0; i < str.length() - 6;)
{
String strTemp = str.substring(i, i + 6);
String value = strTemp.substring(2);
int c = 0;
for (int j = 0; j < value.length(); j++)
{
char tempChar = value.charAt(j);
int t = 0;
switch (tempChar)
{
case 'a':
t = 10;
break;
case 'b':
t = 11;
break;
case 'c':
t = 12;
break;
case 'd':
t = 13;
break;
case 'e':
t = 14;
break;
case 'f':
t = 15;
break;
default:
t = tempChar - 48;
break;
}

c += t * ((int) Math.pow(16, (value.length() - j - 1)));
}
sb.append((char) c);
i = i + 6;
}
return sb.toString();
}

转载于:https://blog.51cto.com/zorro/689900

JAVA方法 字符串与unicode的相互转换相关推荐

  1. 【Java】字符串转Unicode字符串

    前言 jdk1.8 字符串转Unicode字符串 字符串:{"name":"类别"} 转Unicode字符串:{"name":"\ ...

  2. Java中字符串与整数的相互转换

    一.整数转字符串 1.String.valueOf() 此方法可以将Integer和int类型的转为String类型的 int num = 8;String str = String.valueOf( ...

  3. java 处理unicode_Java与Unicode

    Java与Unicode:Java的class文件采用utf8的编码方式,JVM运行时采用utf16.Java的字符串是unicode编码的.总之,Java采用了unicode字符集,使之易于国际化. ...

  4. java 中文 音序,java 中文字符串数组按照音序排列

    java 中文字符串数组按照音序排列 复制代码 代码如下: public class SortComparator implements Comparator{ public int compare( ...

  5. java 编码 unicode_java编码-Unicode

    [Unicode介绍] 百度百科:Unicode(统一码.万国码.单一码)是计算机科学领域里的一项业界标准,包括字符集.编码方案等.Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种 ...

  6. php 把java list对象转成数组,java_JSON的String字符串与Java的List列表对象的相互转换,在前端: 1.如果json是List对象 - phpStudy...

    JSON的String字符串与Java的List列表对象的相互转换 在前端:1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为json传到 ...

  7. java list 转json 字符串_JSON的String字符串与Java的List列表对象的相互转换

    1.JSON的String字符串与Java的List列表对象的相互转换 在前端: 1.如果json是List对象转换的,可以直接遍历json,读取数据. 2.如果是需要把前端的List对象转换为jso ...

  8. php如何让字符串变运算公式,MySQL_使用java处理字符串公式运算的方法,  在改进一个关于合同的项 - phpStudy...

    使用java处理字符串公式运算的方法 在改进一个关于合同的项目时,有个需求,就是由于合同中非数据项的计算公式会根据年份而进行变更,而之前是将公式硬编码到系统中的,只要时间一变,系统就没法使用了,因此要 ...

  9. 判断字符串不包含某个字符php,java判断字符串是否包含某个字符的方法

    java判断字符串是否包含某个字符的方法: 一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2: ...

最新文章

  1. pytorch 加载模型:
  2. 好男人都结婚了吗?最后的研究结论亮了……
  3. python执行shell命令行_python执行命令行:python中执行shell命令行read结果
  4. 支付宝集五福1月19日开启 超1000个商家机构齐发福卡
  5. sql server 转发_SQL Server中的转发记录性能问题
  6. 《CCIE路由和交换认证考试指南(第5版) (第1卷)》——2.4节VLAN Trunk协议
  7. jQuery幸运大转盘_jQuery+PHP抽奖程序
  8. Linux_free(buffer与cache区别)
  9. 弱小目标检测领域下图像的信噪比(SNR)计算方法
  10. python词性标注_Python词性标注HMM+viterbi实现
  11. 索隆:九山八海,无我不断者。
  12. 2021最全财富密码,95个即将发币项目概览
  13. win7系统怎么用笔记本做wifi热点啊?
  14. oracle Net manger配置网络服务
  15. ms office excel2013教程 - 套用表格样式
  16. 水贝风机远程控制app
  17. 8种常见液相色谱异常峰
  18. 小程序反编译 g is not defined_爱豆诗集第一季收官!“小太阳”张新成了解一下?丨爱豆诗集...
  19. 如何把列表转内容转至拼音首字母归档排序
  20. 【俄罗斯方块】单机游戏-微信小程序项目开发入门

热门文章

  1. CentOS 7 搭建JAVA环境
  2. Spring 读取配置文件(二)
  3. 用SQL语句添加删除修改字段_常用SQL
  4. spring mvc注解@RequestMapping
  5. 九度 1470 调整方阵
  6. 说说大型高并发高负载网站的系统架构(ZT)
  7. 编译原理--NFA/DFA
  8. Deployment descriptor
  9. 名词解释(容器、并发,插件,脚本)及程序对象的创建和注释文档
  10. spring boot 扩展之AutoConfigurationImportListener