All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.apanlh.util.encode.StrEncodeUtils Maven / Gradle / Ivy

There is a newer version: 2.0.0.2
Show newest version
package com.gitee.apanlh.util.encode;

import com.gitee.apanlh.exp.EncodeException;
import com.gitee.apanlh.util.reflection.ClassConvertUtils;
import com.gitee.apanlh.util.valid.ValidParam;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.Charset;

/**	
 * 	字符集编码
 * 	
 * 	@author Pan
 */
public class StrEncodeUtils {
	
	/**
	 * 	不允许外部示例
	 * 	@author Pan
	 */
	private StrEncodeUtils() {
		super();
	}
	
	/**	
	 * 	指定编码转换UTF-8
	 * 	
	 * 	@author Pan
	 * 	@param 	str		字符串
	 * 	@param 	charset	字符集
	 * 	@return	String
	 */
	public static String utf8EncodeToStr(String str, String charset) {
		try {
			return utf8EncodeToStr(str.getBytes(charset));
		} catch (UnsupportedEncodingException e) {
			throw new EncodeException(e.getMessage(), e);
		}
	}
	
	/**	
	 * 	byte转换String
	 * 	
指定字符集 * * @author Pan * @param bytes 字节数组 * @param charset 字符集 * @return String */ public static String utf8EncodeToStr(byte[] bytes, String charset) { try { return new String(bytes, charset); } catch (UnsupportedEncodingException e) { throw new EncodeException(e.getMessage(), e); } } /** * byte转换String *
字符集UTF-8 * * @author Pan * @param bytes 字节数组 * @return String */ public static String utf8EncodeToStr(byte[] bytes) { return utf8EncodeToStr(bytes, CharsetCode.UTF_8); } /** * 将字符集转换为UTF-8 * * @author Pan * @param content 内容 * @return String */ public static String utf8EncodeToStr(String content) { return utf8EncodeToStr(utf8EncodeToBytes(content)); } /** * String转换byte *
自定义编码 * * @author Pan * @param content 内容 * @param charset 字符集 * @return byte[] */ public static byte[] utf8EncodeToBytes(String content, String charset) { try { return content.getBytes(charset); } catch (UnsupportedEncodingException e) { throw new EncodeException(e.getMessage(), e); } } /** * String转换byte *
自定义编码 * * @author Pan * @param content 内容 * @param charset 字符编码 * @return byte[] */ public static byte[] utf8EncodeToBytes(String content, Charset charset) { return content.getBytes(charset); } /** * String转换byte *
字符集UTF-8 * * @author Pan * @param content 内容 * @return byte[] */ public static byte[] utf8EncodeToBytes(String content) { return utf8EncodeToBytes(content, CharsetCode.UTF_8); } /** * CharSequence转换byte *
StringBuilder/StringBuffer等 *
字符集UTF-8 * * @author Pan * @param content 内容 * @return byte[] */ public static byte[] utf8EncodeToBytes(CharSequence content) { try { return content.toString().getBytes(CharsetCode.UTF_8); } catch (UnsupportedEncodingException e) { throw new EncodeException(e.getMessage(), e); } } /** * 根据指定编码对字符串进行转码 *
进行UTF-8转码 * * @author Pan * @param content 内容 * @return String */ public static String urlEncode(String content) { return urlEncode(content, CharsetCode.UTF_8); } /** * 根据指定编码对字符串进行转码 * * @author Pan * @param content 内容 * @param charset 字符集 * @return String */ public static String urlEncode(String content, String charset) { try { return URLEncoder.encode(content, charset); } catch (UnsupportedEncodingException e) { throw new EncodeException(e.getMessage(), e); } } /** * 对字符串解码 *
进行UTF-8解码 * * @author Pan * @param content 内容 * @return String */ public static String urlDecode(String content) { return urlDecode(content, CharsetCode.UTF_8); } /** * 对字符串进行 解码 * * @author Pan * @param content 内容 * @param charset 字符集 * @return String */ public static String urlDecode(String content, String charset) { try { return URLDecoder.decode(content, charset); } catch (UnsupportedEncodingException e) { throw new EncodeException(e.getMessage(), e); } } /** * String转换Unicode * * @author Pan * @param content 内容 * @return String */ public static String unicodeEncode(String content) { if (ValidParam.isEmpty(content)) { return content; } StringBuilder strBuilder = new StringBuilder((content.length() * 6) + 1); int index = 0; int len = content.length(); while (index < len) { char c = content.charAt(index); strBuilder.append("\\u"); if ((c >>> 8) == 0) { strBuilder.append("00"); } strBuilder.append(HexUtils.encode(c)); index++; } return strBuilder.toString(); } /** * Unicode转换Str * * @author Pan * @param content 内容 * @return String */ public static String unicodeDecode(String content) { if (ValidParam.isEmpty(content)) { return content; } int strLen = content.length(); int index = 0; StringBuilder strBuilder = new StringBuilder((strLen / 6) + 1); while (index < strLen) { char c = content.charAt(index); if (c == '\\' && content.charAt(index + 1) == 'u') { strBuilder.append((char) ClassConvertUtils.toInt(content.substring(index + 2, index + 6), 16)); index += 6; } else { strBuilder.append(c); index++; } } return strBuilder.toString(); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy