看到别人写的,也算是
一种解决办法,稍微该了下,用数组来装和for
循环来获取,这样要填新
编码方便点.
class="java" name="code">
/**
* 返回传入字符串的编码格式
* @param str
* @return
*/
public static String getCodeType(String str){
String[] code={"ISO-8859-1","UTF-8","GBK","GB2312"};
String testStr=null;
try {
for(String s:code){
testStr=new String(str.getBytes(s),s);
if(str.equals(testStr)){
//System.out.println(s);
return s;
}
}
return null;
} catch (UnsupportedEncodingException e) {
return null;
}
}
/**
* 把传入值转换成特定编码
* @param str 要转换的值
* @param charEncode 编码格式,默认utf-8
* @return
*/
public static String getConversionValue(String str,String charEncode){
charEncode = (charEncode==null ||"".equals(charEncode))?"utf-8":charEncode;
String strCode=getCodeType(str);
if(strCode!=null){
try {
str=new String(str.getBytes(strCode),charEncode);
} catch (UnsupportedEncodingException e) {
return "";
}
}
return str;
}
/**
* 把传入值转换成特定编码,默认utf-8
* @param str
* @return
*/
public static String getConversionValue(String str){
return getConversionValue(str,null);
}