我是靠谱客的博主 眼睛大电脑,最近开发中收集的这篇文章主要介绍jsonarray中的unicode转中文,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、需求
  接受到的json数组对象字符串,涉及多个中文字段是unicode编码,需要持久化前unicode转码成明文中文。
二、工具
  (一) fastjson (alibaba)
  (二) java自带的类库
   java.util.*(Pattern.compile matcheer ; Matcher.find group )
         或者
          java.lang.* (StringBuIlder append ; String index substring)
三、功能点
 (一) json (JavaScript Object Notaion,JS对象标记)
   JSON是一种轻量级的数据交换格式。它是js规范的一个子集,采用完全独立与编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构,易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
 (二)  unicode
  unicode是计算机科学领域里的一项业界标准,包含编码方案和字符集等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转、处理的要求。
 在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面(英文为 Basic Multilingual Plane,简写 BMP。它又简称为“零号平面”, plane 0)里的所有字符,要用四位十六进制数(例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五位或六位十六进制数了。旧版的Unicode标准使用相近的标记方法,但却有些微的差异:在Unicode 3.0里使用“U-”然后紧接着八位数,而“U+”则必须随后紧接着四位数。
  Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。目前的Unicode字符分为17组编排,0x0000 至 0x10FFFF,每组称为平面(Plane),而每平面拥有65536个码位,共1114112个。然而目前只用了少数平面。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。
四、示例
 (一) 接受的json转成对象处理

JSONObject myObject = JSONObject.parseObject(externalVal);
if(myObject!= null){
String status = myObjcet.getString("status");
JSONArray myArray = myObject.getJSONArray("result");
for(int i = 0; i < myArray.size(); i++){
JSONObject orderObj = myArray.getJSONObject(i);
String orderNum = orderObj.getString("order_num");
Date orderTime = orderObj.getDate("order_time");
}
 (二)将unicode转成中文
 
public static String unicodeConvert(String unicodeStr){
//unicodeStr:
{"u957fu5ea6":"30","u5bbdu5ea6":"30"}
StringBuilder sb = new StringBuilder();
int i = -1;
int pos = 0;
//从指定pos位置查找“u”的位置
while((i = unicodeStr.indexOf("\u",pos)) != -1){//第一次i=2
//指定位置pos到出现"u"中间的字符记录下来
sb.append(unicodeStr.subString(pos,i));
if(i+5 < unicodeStr.length()){//查找到"u",保证后面要有四个字符,能够组成一个完整字节?
pos = i + 6;
sb.append((char)Integer.parseInt(unicoderStr.substring(i + 2, i + 6)),16);//如将957f按照16进制解析成有符号的整数,然后转成字符
}
}
if(pos < unicodeStr.length()){
//如果pos没有超过字符串长度,则将剩余字符也记录进去
sb.append(unicodeStr(pos));
}
return sb.toStrig().replace("{","[").replace("}","]");//["长度":"30","宽度":"30"]
}

五、总结

最后

以上就是眼睛大电脑为你收集整理的jsonarray中的unicode转中文的全部内容,希望文章能够帮你解决jsonarray中的unicode转中文所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部