android汉字unicode编码,Android解析UniCode编码
前⾔
从⽹络获取JSON信息的时候,有时我们会获取到⼀些不知名的东西,⽐如下⾯的情况就是我获取的json信息:
可以看到artist_name我所希望的是歌⼿的名字,结果出来的却是⼀堆不知道什么东西的编码,我⼤概的猜测⼀下,它有可能就是UniCode 编码,因为它和UniCode编码⽐较相像,原因有⼆:
UniCode的基本格式是->\u2345之类的形式,总是4个数字和字母的集合,⽽给定的那串字符串的长度就是4的倍数,这就使得很有可能它就是UniCode编码。
UTF-8编码是⼀⼤串不知名的东西,给的字符串长度不符合(排除法)
既然我猜测它是UniCode编码那么我就要验证⼀下,使⽤了⼀个UniCode编码的转换⼯具,我得到了下⾯的结果:
看来我的猜测是正确的,那么接下来该怎么⽤代码去解析它呢,总不能⼿动⽤⼯具去解析吧,这是肯定不⾏的,所以我还是百度了⼀下(⾃⼰也不是懂~~),最终得到了⼀些答案。
实现
实现的思路还是⽐较清晰的,代码也不是很难,额~~应该说是很简单的吧,看了就知道了。
将得到的字符串每四个⼀组分割得到
使⽤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;
}
unicode在线工具我解析之后再程序运⾏的结果如下:
可以看到,程序正确运⾏了,可见⽅法还是对的,虽然我不知道是不是有相关已经封装好的⽅法可以直接使⽤,但是现在就先这么来吧。
⼩结
经过这次的经历,我发现遇到问题还是不能太着急,要根据⾃⼰所学的内容进⾏⼤胆的猜测,有时候可能就是根本不沾边的内容,但说不定就是对的,^_^!
【补充-2015:8:12】 因为在计算机上不能直接显⽰出来,但是在android⼿机上式可以直接看到所表⽰的内容,上⾯我所说的可能有点画蛇添⾜了,当时还不是太了解,现在明⽩了。当你看不懂所得到的信息,可以利⽤上⾯的⼯具来得到内容,当然也可以直接在android上显⽰。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。