Android Java中将unicode的汉字码转换成utf-8格式的汉字
2017-04-21 10:29
639 查看
最近项目中跟后台的交互莫名其妙的String类型的全部都是”乱码”了。比如网络请求给后台post传递的参数中有一个String类型的参数,结果到了后台哪里接收到的就是”乱码”了,同样的,后台给返回回来的json数据,中也是全部”乱码”。问题是之前一直都好好的,有天突然发现这样的问题了。于是乎在跟后台撕逼了大半天没有结果后,大家各自找解决办法,最终android端找到了这种解决方案,今天来给记录分享一下。
首先这里说上面的”乱码”其实发现原来是unicode的编码方式。知道了这个后剩下的就是将其转换成我们所谓的汉字编码格式,也就是常见的UTF-8,下面是最终封装的一个工具类:
Android中给后台传递或者接收的时候直接调用,例如这里post传递string参数的时候可以这样写:
首先这里说上面的”乱码”其实发现原来是unicode的编码方式。知道了这个后剩下的就是将其转换成我们所谓的汉字编码格式,也就是常见的UTF-8,下面是最终封装的一个工具类:
/** * * @author Nan * */ public class UnicodeUtil { /** * 将utf-8的汉字转换成unicode格式汉字码 * @param string * @return */ public static String stringToUnicode(String string) { StringBuffer unicode = new StringBuffer(); for (int i = 0; i < string.length(); i++) { char c = string.charAt(i); unicode.append("\\u" + Integer.toHexString(c)); } String str = unicode.toString(); return str.replaceAll("\\\\", "0x"); } /** * 将unicode的汉字码转换成utf-8格式的汉字 * @param unicode * @return */ public static String unicodeToString(String unicode) { String str = unicode.replace("0x", "\\"); StringBuffer string = new StringBuffer(); String[] hex = str.split("\\\\u"); for (int i = 1; i < hex.length; i++) { int data = Integer.parseInt(hex[i], 16); string.append((char) data); } return string.toString(); } public static void main(String[] args) { String str = "你好吗? How are you"; //String test2 = "0xu4f600xu597d0xu54170xuff1f0xu200xu480xu6f0xu770xu200xu610xu720xu650xu200xu790xu6f0xu75"; String unicode = stringToUnicode(str); String string = unicodeToString(unicode); System.out.println("转换成unicode格式的:\n"+unicode); System.out.println("转换成汉字UTF-8格式的:\n"+string); } }
Android中给后台传递或者接收的时候直接调用,例如这里post传递string参数的时候可以这样写:
RequestParams params = new RequestParams(); params.addBodyParameter("title", UnicodeUtil.stringToUnicode(mEt.getText().toString()).trim());
相关文章推荐
- Android- Unicode编码 和 汉字转换( java实现 , javascript实现)
- Android中将带html格式的数据转换成java识别显示内容
- java中unicode utf-8以及汉字之间的转换工具类
- java中unicode utf-8以及汉字之间的转换工具类
- Java中将数据由UTF8转换成GB2312格式
- Java中将数据由UTF8转换成GB2312格式-Java基础-Java-编程开发
- 中文转换成UTF-8格式的java代码
- 转换 xml 格式,默认 utf-8 , 要输出成 gbk ,并保存 (java )
- java 汉字转换成unicode
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- ASP中将汉字转换为UTF-8的一段代码
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换[引]
- 用java实现把汉字转换为Unicode
- 关于JAVA中汉字和Unicode的值之间的转换
- JAVA字符编码系列二:Unicode,ISO-8859,GBK,UTF-8编码及相互转换
- Java中将数据由UTF8转换成GB2312格式
- UTF-8与Unicode字符的相互转换 与 16进制Unicode转换汉字 重用代码
- java中将数字转换成带千分位格式
- 在JAVA中将日期格式的string转换为Date
- C#_汉字与GBK,Unicode,UTF-8编码之间的转换(by daode1212)