转换函数怎么写的?
如果按你说的,单独写一个类 测试这个进制转换的方法是没问题的,那怎么会有问题呢?android里你是通过这个方法将传入的汉字编码转换,测试里也是将传入的汉字转换,那是没有任何区别的。
如果按你说的,单独写一个类 测试这个进制转换的方法是没问题的,那怎么会有问题呢?android里你是通过这个方法将传入的汉字编码转换,测试里也是将传入的汉字转换,那是没有任何区别的。
解决方案 »
- 想往android模拟器的"/data/"目录下新建一个.txt文件,可是程序运行后没有创建文件也不报错,不知怎么回事。
- 手机通讯录
- Android NDK调用C/C++中文字符不显示问题
- listview的item的背景随最外层layout背景改变,求解救
- Android程序的问题(江湖救急!!!!)
- 关于多语言和屏幕适配的问题
- 如何防止后台程序自己退出?
- 求PC与手机UDP协议通讯问题
- ListView selector的怪问题,selector显示的颜色跟定义的不一致
- android上QT开发接收不到UDP数据包
- Android AVD不能start
- 有人做过Android开发xml-rpc的应用吗?
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
if(str==null || str.length()<=0){
return "";
}
byte[] a=str.getBytes();
StringBuffer sb = new StringBuffer();
for(int i=0; i<a.length; i++){
sb.append(Integer.toHexString((256+a[i])%256) + " ");
}
return sb.toString();
}
在这个方法中呢, str=“暂”;Toast时显示的(LogCat无法显示中文),而最后的Log.v("TaskSync", sb.toString());显示的却是“e6 9a 82”,很令人郁闷呐
android编码的问题太挠头了。
把取出来的数据转为utf-8呢?
我是在一个普通的JavaProject中测试这个转码方法是可以的 可是把这个方法拿来用在Android中就不行了, 那个方法我已经贴上去了哦 显示的时候是在ListActivity中的一个Item中显示的 这个Item也就是一个TextVeiw
我在转码之前 还特意Toast一下,显示也是正常的, 转换过之后 就不行了
android只能正常显示GB编码的汉字,比如“暂” gb编码是D4DD,UTF-8编码是E6 9A 82,也就是你转换后的结果,所以你需要将转完后的16进制字符串再从UTF8转换成GB.....
就是说你函数输入的bytes是utf-8编码的,“暂”的utf-8码就是3个字节。如果你输入它的gbk或unicode16码的话,就对了。它的unicode16码是两个字节。
try {
String str = "暂";
byte[] data = str.getBytes();
System.out.print("getBytes():Default ");
for (int i = 0; i < data.length; i++) {
System.out.print(Integer.toHexString(data[i]) + " ");
}
System.out.println();
data = str.getBytes("utf-8");
System.out.print("getBytes():UTF-8 ");
for (int i = 0; i < data.length; i++) {
System.out.print(Integer.toHexString(data[i]) + " ");
}
System.out.println();
data = str.getBytes("gbk");
System.out.print("getBytes():gbk ");
for (int i = 0; i < data.length; i++) {
System.out.print(Integer.toHexString(data[i]) + " ");
}
System.out.println();
data = str.getBytes("gb2312");
System.out.print("getBytes():gb2312 ");
for (int i = 0; i < data.length; i++) {
System.out.print(Integer.toHexString(data[i]) + " ");
}
System.out.println();
} catch (Exception e) {
e.printStackTrace();
}
Console:getBytes():Default ffffffe6 ffffff9a ffffff82
getBytes():UTF-8 ffffffe6 ffffff9a ffffff82
getBytes():gbk ffffffd4 ffffffdd
getBytes():gb2312 ffffffd4 ffffffdd