乱码的解决:巧用十六进制"/>
android中Parcel中文乱码的解决:巧用十六进制
android中Parcel中文乱码的解决:巧用十六进制
把需要传递的中文转化成十六进制的字符串。
str的格式:
"48", "65", "6C", "6C", "6F", "CD", "FB", "BE", "A9", "D7", "E9"
private String hex2String(String str) { Log.d(LOG_TAG, "hex2String str = " + str);if(str.indexOf(",") == -1){return str;}String[] strArray = str.split(",");
// String[] strArray = {"48", "65", "6C", "6C", "6F", "CD", "FB", "BE", "A9", "D7", "E9"};StringBuilder builder = new StringBuilder();for (int i = 0; i < strArray.length; i++) {char ch = (char) Integer.parseInt(strArray[i], 16);builder.append(new Character(ch).toString());}try {return new String(builder.toString().getBytes("ISO-8859-1"),"GBK");} catch (UnsupportedEncodingException e) {return null;}}
参考代码:
package cn.itcast.string;public class Hex2String {public static void main(String[] args) {// TODO Auto-generated method stubString str = "I love 中国";String s = toHexString(str);System.out.println(s);System.out.println(toStringHex(s));}//转化字符串为十六进制编码public static String toHexString(String str){String s = "";for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);s += Integer.toHexString(ch) + ",";}s = s.substring(0, s.length()-1);return s;}//十六进制编码转化为字符串 public static String toStringHex(String str){String[] strArray = str.split(",");StringBuilder sb = new StringBuilder();for (int i = 0; i < strArray.length; i++) {char ch = (char) Integer.parseInt(strArray[i], 16);sb.append(Character.toString(ch));}return sb.toString();}
}
更多推荐
android中Parcel中文乱码的解决:巧用十六进制
发布评论