Java字符串编码

import java.io.UnsupportedEncodingException;

/** 
 * 转换字符串的编码 
 */ 
public class ChangeCharset { 
	/** 7位ASCII字符,也叫作ISO646-US、Unicode字符集的基本拉丁块 */ 
	public static final String US_ASCII = "US-ASCII"; 
	/** ISO 拉丁字母表 No.1,也叫作 ISO-LATIN-1 */ 
	public static final String ISO_8859_1 = "ISO-8859-1"; 
	/** 8 位 UCS 转换格式 */ 
	public static final String UTF_8 = "UTF-8"; 
	/** 16 位 UCS 转换格式,Big Endian(最低地址存放高位字节)字节顺序 */
	public static final String UTF_16BE = "UTF-16BE"; 
	/** 16 位 UCS 转换格式,Little-endian(最高地址存放低位字节)字节顺序 */ 
	public static final String UTF_16LE = "UTF-16LE"; 
	/** 16 位 UCS 转换格式,字节顺序由可选的字节顺序标记来标识 */ 
	public static final String UTF_16 = "UTF-16"; 
	/** 中文超大字符集 */ 
	public static final String GBK = "GBK"; 
	
	/** 
	 * 字符串编码转换的实现方法 
	 * @param str 待转换编码的字符串 
	 * @param newCharset 目标编码来源:考试大的美女编辑们 
	 * @return 
	 * @throws UnsupportedEncodingException 
	 */ 
	public String changeCharset(String str, String newCharset) 
			throws UnsupportedEncodingException { 
		if (str != null) { 
			//用默认字符编码解码字符串。 
			byte[] bs = str.getBytes(); 
			//用新的字符编码生成字符串 
			return new String(bs, newCharset); 
		} 
		return null; 
	} 
	/** 
	 * 字符串编码转换的实现方法 
	 * @param str 待转换编码的字符串 
	 * @param oldCharset 原编码 
	 * @param newCharset 目标编码来源:考试大的美女编辑们 
	 * @return 
	 * @throws UnsupportedEncodingException 
	 */ 
	public String changeCharset(String str, String oldCharset, String newCharset) 
			throws UnsupportedEncodingException { 
		if (str != null) { 
			//用旧的字符编码解码字符串。解码可能会出现异常。 
			byte[] bs = str.getBytes(oldCharset); 
			//用新的字符编码生成字符串 
			return new String(bs, newCharset); 
		} 
		return null; 
	} 
	
	/** 
	 * 将字符编码转换成US-ASCII码 
	 */ 
	public String toASCII(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, US_ASCII); 
	} 
	/** 
	 * 将字符编码转换成ISO-8859-1码 
	 */ 
	public String toISO_8859_1(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, ISO_8859_1); 
	} 
	/** 
	 * 将字符编码转换成UTF-8码 
	 */ 
	public String toUTF_8(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, UTF_8); 
	} 
	/** 
	 * 将字符编码转换成UTF-16BE码 
	 */ 
	public String toUTF_16BE(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, UTF_16BE); 
	} 
	/** 
	 * 将字符编码转换成UTF-16LE码 
	 */ 
	public String toUTF_16LE(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, UTF_16LE); 
	} 
	/** 
	 * 将字符编码转换成UTF-16码来源:www.examda.com 
	 */ 
	public String toUTF_16(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, UTF_16); 
	}
	/** 
	 * 将字符编码转换成GBK码 
	 */ 
	public String toGBK(String str) throws UnsupportedEncodingException{ 
		return this.changeCharset(str, GBK); 
	} 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值