`

java获取字符编码并转换

    博客分类:
  • java
阅读更多
看到别人写的,也算是一种解决办法,稍微该了下,用数组来装和for循环来获取,这样要填新编码方便点.


	/**
	 * 返回传入字符串的编码格式
	 * @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);
	}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics