Android--字符串和16进制相互转化(解决中文乱码)
2016-02-02 17:24
495 查看
import java.io.ByteArrayOutputStream; /** * Created by Administrator on 2016/2/2. * -----------16进制和字符串互转--------- * ------------解决中文乱码问题--------- */ public class StringToSixthUtils { private static String hexString = "0123456789abcdef"; /* * 将字符串编码成16进制数字,适用于所有字符(包括中文) */ public static String encode(String str) { //根据默认编码获取字节数组 byte[] bytes = str.getBytes(); StringBuilder sb = new StringBuilder(bytes.length * 2); //将字节数组中每个字节拆解成2位16进制整数 for (int i = 0; i < bytes.length; i++) { sb.append(hexString.charAt((bytes[i] & 0xf0) >> 4)); sb.append(hexString.charAt((bytes[i] & 0x0f))); } return sb.toString(); } /* * 将16进制数字解码成字符串,适用于所有字符(包括中文) */ public static String decode(String bytes) { ByteArrayOutputStream baos = new ByteArrayOutputStream(bytes.length() / 2); //将每2位16进制整数组装成一个字节 for (int i = 0; i < bytes.length(); i += 2) baos.write((hexString.indexOf(bytes.charAt(i)) << 4 | hexString.indexOf(bytes.charAt(i + 1)))); return new String(baos.toByteArray()); } }
相关文章推荐
- Android LayoutInflater详解
- Android MVP与MVC的区别和理解
- ViewPager滑动背景渐变效果
- 关于即时通讯中Android录音与ios录音的兼容问题
- Android的AlertDialog的6种使用情景
- 手机相册的基本使用
- android中Logcat的深层理解
- android事件传递
- 有效地分析Android内存--MAT工具解析
- 浅析一下androidstudido2.0官方模拟器
- Android应用性能优化之使用SparseArray替代HashMap
- Android 动态关闭Manifest中的Receiver的方法
- XMPP在android客户端上的应用 Androidpn的使用[找不到org.androidpn.client.PersistentConnectionListener]
- ecplise android 项目转AndroidStrudio 流程
- Android开发环境、镜像服务地址、工具网址
- Android DiskLRUCache图片下载优化 <20>
- Android gallery画廊
- Android——Shader渲染器
- Android实现地图服务
- 我常用的库和插件