java實現url轉碼、解碼

來源:互聯網
上載者:User

標籤:

URL由來:

一般來說,URL只能使用英文字母、阿拉伯數字和某些標點符號,不能使用其他文字和符號。比如,世界上有英文字母的網址 “http://www.abc.com”,但是沒有希臘字母的網址“http://www.aβγ.com”(讀作阿爾法-貝塔-伽瑪.com)。這是 因為網路標準RFC 1738 做了硬性規定:

"...Only alphanumerics [0-9a-zA-Z], the special characters "$-_.+!*‘()," [not including the quotes - ed], and reserved characters used for their reserved purposes may be used unencoded within a URL."

“只有字母和數字[0-9a-zA-Z]、一些特殊符號“$-_.+!*‘(),”[不包括雙引號]、以及某些保留字,才可以不經過編碼直接用於 URL。”

這意味著,如果URL中有漢字,就必須編碼後使用。但是麻煩的是,RFC 1738沒有規定具體的編碼方法,而是交給應用程式(瀏覽器)自己決定。這導致“URL編碼”成為了一個混亂的領域。

下面就讓我們看看,“URL編碼”到底有多混亂。我會依次分析四種不同的情況,在每一種情況中,瀏覽器的URL編碼方法都不一樣。把它們的差異解釋 清楚之後,我再說如何用Javascript找到一個統一的編碼方法。

 

具體代碼如下:(切記切記,一定要注意編碼)

 

package com.util;import java.io.UnsupportedEncodingException;/** * url轉碼、解碼 * * @author lifq  * @date 2015-3-17 下午04:09:35 */public class UrlUtil {    private final static String ENCODE = "GBK";     /**     * URL 解碼     *     * @return String     * @author lifq     * @date 2015-3-17 下午04:09:51     */    public static String getURLDecoderString(String str) {        String result = "";        if (null == str) {            return "";        }        try {            result = java.net.URLDecoder.decode(str, ENCODE);        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return result;    }    /**     * URL 轉碼     *     * @return String     * @author lifq     * @date 2015-3-17 下午04:10:28     */    public static String getURLEncoderString(String str) {        String result = "";        if (null == str) {            return "";        }        try {            result = java.net.URLEncoder.encode(str, ENCODE);        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        return result;    }    /**     *      * @return void     * @author lifq     * @date 2015-3-17 下午04:09:16     */    public static void main(String[] args) {        String str = "測試1";        System.out.println(getURLEncoderString(str));        System.out.println(getURLDecoderString(str));            }}

 

java實現url轉碼、解碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.