前言

从网络获取JSON信息的时候,有时我们会获取到一些不知名的东西,比如下面的情况就是我获取的json信息:

Android 对字符进行unicode处理 安卓安装最新unicode字符_ico

可以看到artist_name我所希望的是歌手的名字,结果出来的却是一堆不知道什么东西的编码,我大概的猜测一下,它有可能就是UniCode编码,因为它和UniCode编码比较相像,原因有二:

UniCode的基本格式是->\u2345之类的形式,总是4个数字和字母的集合,而给定的那串字符串的长度就是4的倍数,这就使得很有可能它就是UniCode编码。

UTF-8编码是一大串不知名的东西,给的字符串长度不符合(排除法)

既然我猜测它是UniCode编码那么我就要验证一下,使用了一个UniCode编码的转换工具,我得到了下面的结果:

Android 对字符进行unicode处理 安卓安装最新unicode字符_ico

看来我的猜测是正确的,那么接下来该怎么用代码去解析它呢,总不能手动用工具去解析吧,这是肯定不行的,所以我还是百度了一下(自己也不是懂~~),最终得到了一些答案。

实现

实现的思路还是比较清晰的,代码也不是很难,额~~应该说是很简单的吧,看了就知道了。

将得到的字符串每四个一组分割得到

使用Integer类的方法将该四个一组的字符串分别得到相应的十进制大小的int值(PS:原来那四个一组是16进制的数啊,看着也挺像的)

将int值转换为char类型的字符

把char类型转换成String

把得到的每一个String连接起来就是解析出来的内容

很明显我们需要写一个函数,下面就是我的代码,我就不做过多的解释了,都是很简单的内容。

String getStrFromUniCode(String unicode){
String str = "";
for(int i=0;i
String s = "";
for(int j=i;j
s+=String.valueOf(unicode.charAt(j));
}
str+=String.valueOf((char)Integer.valueOf(s, 16).intValue());
}
return str;
}

我解析之后再程序运行的结果如下:

Android 对字符进行unicode处理 安卓安装最新unicode字符_ico

可以看到,程序正确运行了,可见方法还是对的,虽然我不知道是不是有相关已经封装好的方法可以直接使用,但是现在就先这么来吧。

小结

经过这次的经历,我发现遇到问题还是不能太着急,要根据自己所学的内容进行大胆的猜测,有时候可能就是根本不沾边的内容,但说不定就是对的,^_^!

【补充-2015:8:12】 因为在计算机上不能直接显示出来,但是在android手机上式可以直接看到所表示的内容,上面我所说的可能有点画蛇添足了,当时还不是太了解,现在明白了。当你看不懂所得到的信息,可以利用上面的工具来得到内容,当然也可以直接在android上显示。