1. 程式人生 > >URL編碼(RFC3986協議)(僅程式碼)

URL編碼(RFC3986協議)(僅程式碼)

URL編碼(RFC3986協議)

    /**
     * 文字rawURL編碼(RFC3986協議)
     * 
     * @param value
     * 			文字
     * @param charset
     * 			字符集
     * 
     * @return	編碼結果
     * 
     * @throws SyncException
     * 			同步異常
     */
    public final String rawUrlEncoder(String value, String charset) throws SyncException {
    	
    	try {
    		// JAVAUrl編碼
    		String urlEncoderStr = URLEncoder.encode(value, charset);
    		// 文字URL編碼(空格、~處理)
    		// 空格:會被UrlEncoder轉成+,《RFC3986》編碼為%20
    		// ~:會被UrlEncoder編碼為%7E,《RFC3986》允許存在
    		return urlEncoderStr.replace("+", "%20").replace("%7E", "~");
    	// 發生異常
    	} catch(UnsupportedEncodingException e) {
			// 異常訊息丟擲
			throw createErrorInfo(strAppend("文字內容【", value, "】rawURL編碼失敗。"), log, e);
    	}
    }

Base64編碼

    /**
     * 文字Base64編碼
     * 
     * @param value
     * 			文字
     * @param charset
     * 			字符集
     * 
     * @return	編碼結果
     * 
     * @throws SyncException
     * 			同步異常
     */
    public final String base64Encoder(String value, String charset) throws SyncException {
    	
    	try {
    		// 文字BASE64編碼
    		return new String(Base64.encodeBase64(value.getBytes(charset)), charset);
    	// 發生異常
    	} catch(UnsupportedEncodingException e) {
			// 異常訊息丟擲
			throw createErrorInfo(strAppend("文字內容【", value, "】Base64編碼失敗。"), log, e);
    	}
    }

文字URL編碼

/**
 * 文字URL編碼
 * 
 * @param value
 * 			文字
 * @param charset
 * 			字符集
 * 
 * @return	編碼結果
 * 
 * @throws SyncException
 * 			同步異常
 */
public final String urlEncoder(String value, String charset) throws SyncException {
	
	try {
		// 文字URL編碼
		return URLEncoder.encode(value, charset);
	// 發生異常
	} catch(UnsupportedEncodingException e) {
		// 異常訊息丟擲
		throw createErrorInfo(strAppend("文字內容【", value, "】URL編碼失敗。"), log, e);
	}
}