可以将通过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;
}
}
}

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

被折叠的 条评论
为什么被折叠?



