編碼解碼是什麼?
編碼是信息從一種形式或格式轉換為另一種形式的過程,也稱為計算機程式語言的代碼簡稱編碼。用預先規定的方法將文字、數字或其它對象編成數碼,或將信息、數據轉換成規定的電脈衝信號。編碼在電子計算機、電視、遙控和通訊等方面廣泛使用。編碼是信息從一種形式或格式轉換為另一種形式的過程。解碼,是編碼的逆過程。
解碼是一種用特定方法,把數碼還原成它所代表的內容或將電脈衝信號、光信號、無線電波等轉換成它所代表的信息、數據等的過程。解碼是受傳者將接受到的符號或代碼還原為信息的過程,與編碼過程相對應。
URL 如何編碼解碼?為什麼要編碼?
為什麼要編碼?
URL 只能使用 ASCII 字符集來通過網際網路進行發送。也就是說URL只能使用英文字母、阿拉伯數字和某些標點符號,不能使用其他文字和符號。
這意味著如果URL存在漢字,就必須編碼後使用。
image.png
如上圖所示,在瀏覽器中的 URL 所展現的樣式包含有中文字符,但將這行 URL 複製粘貼時會發現,實際上的內容和你所看到的是不一樣的。所以說 URL 編碼只是針對非英文字母、阿拉伯數字和某些標點符號起作用的。
那麼 URL 是如何編碼的呢??
URL 編碼的原則就是使用安全的字符(沒有特殊用途或者特殊意義的可列印字符)去表示那些不安全的字符。
首先需要把該字符的 ASCII 的值表示為兩個16進位的數字,然後在其前面放置轉義字符("%"),置入 URL 中的相應位置。(對於非 ASCII 字符, 需要轉換為 UTF-8 字節序, 然後每個字節按照上述方式表示.)
例如說我們有這樣一條 URL :www.hahaha.com/你好?a=1&b=2,我們如何可以把它合法的在網際網路中傳播呢??
使用 encodeURIComponent(str) 這個方法來將 utf-8 的字符編碼為合法的 URL 。
上面的那條網址合法的傳輸形式為 window.encodeURIComponent('www.hahaha.com/你好?a=1&b=2') 。
image.png
想要解碼的時候只需要使用decodeURIComponent(str)這個方法就可以解碼你所得到的URL 。
image.png
JavaScript提供四個URL的編碼/解碼方法。
除了以上兩種,還有decodeURI()解碼和encodeURI()編碼,區別是:
encodeURI方法不會對下列字符編碼
ASCII字母
數字
[email protected]#$&*()=:/,;?+'
encodeURIComponent方法不會對下列字符編碼
ASCII字母
數字
~!*()'
所以encodeURIComponent比encodeURI編碼的範圍更大。
實際例子來說,encodeURIComponent會把 http:// 編碼成 http%3A%2F%2F 而encodeURI卻不會。
擴展資料:
GB編碼標準中,比較常用的是GB2312和GBK兩種,GB2312是GBK的一個子集,GB2312編碼範圍是 0xA1A1 - 0xFEFE ,如果純粹的 GB2312編碼,處理起來是十分簡單的,但處理GBK字符集時有些小的提示,先說說GBK編碼的標準吧:
GBK 採用雙字節表示,總體編碼範圍為 8140-FEFE,首字節在 81-FE 之間,尾字節在 40-FE 之間,剔除 xx7F 一條線。總計 23940 個碼位,共收入 21886 個漢字和圖形符號,其中漢字(包括部首和構件)21003 個,圖形符號 883 個