自己写的java的字符集转换工具

本文介绍了一个Java类,用于将通过GET方式获取的ISO8859-1格式数据转换为UTF-8格式,并提供了一个方法来批量转换对象中的字符串属性。

可以将通过get方式获取的ISO8859-1格式的数据转换为utf-8

public class CharSetFormat {



//转换对象指定属性
static public String ISOtoUTF8(String str) throws UnsupportedEncodingException{
return new String(str.getBytes("ISO8859-1"),"UTF-8");
}
/**
* 转换对象的string 的属性的编码
* @param obj
* @return
* @throws Exception
*/
static public Object ISOtoUTF8ForObject(Object obj) throws Exception{
String temp = null;
Field[]  fields=    obj.getClass().getDeclaredFields();
   for(Field field:fields){
    field.setAccessible(true);
        Object val = field.get(obj);// 得到此属性的值
            //System.out.println("name:" + field.getName() + "\t value = " + val);
            String type = field.getType().toString();// 得到此属性的类型
            if(type.endsWith("String")&&val!=null&&!"".equals(val))
            {
            temp = (String) val;
            //判断是否为ISO8859-1编码
            if(temp.equals(new String(temp.getBytes("ISO-8859-1"),"ISO-8859-1"))){
            temp = new String(temp.getBytes("ISO-8859-1"),"UTF-8");//转换字符编码
            System.err.println("当前编码为ISO-8859-1:"+temp);
            }
            if(temp.equals(new String(temp.getBytes("UTF-8"),"UTF-8"))){
            System.err.println("当前编码为utf8:"+temp);
            }
                field.set(obj,temp); // 给属性设值
            }
   }
return obj;
}


@Test
public void test() throws Exception{
people peo = new people();
peo.setId(1);
peo.setName("哈哈");

Object xx = CharSetFormat.ISOtoUTF8ForObject(peo);
System.err.println(xx.toString());
}


class people{
private String name;
private int id;

public people() {
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return id+":"+name;
}
}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值