我正在用不同的語言編寫我自己的函數,並且我希望它在可能的情況下提供相同的結果。JavaScript:什麼字符不是由encodeURIComponent編碼的?
4
A
回答
7
您可以找到MDC documentation信息:
encodeURIComponent
轉義的所有字符,除了以下內容:
字母,十進制數字,- _ . ! ~ * ' ()
3
簡短的回答,您可以匹配所有UTF-16代碼單元encodeURIComponent
將使用以下編碼:
/[^a-zA-Z0-9\-_.!~*'()]/g
雖然,規範說它處理補充代碼點與4字節的UTF-8編碼。
龍答案,ES 262說
15.1.3.4 encodeURIComponent方法(uriComponent)
encodeURIComponent函數計算,其中某些字符的每個實例由一個取代了URI的新版本中,兩個,三個或四個表示字符的UTF-8編碼的轉義序列。 當encodeURIComponent函數被調用,一個參數uriComponent,採取以下步驟:
讓componentString是的ToString(uriComponent)。
設unescapedURIComponentSet是包含每一個字符在有效 uriUnescaped的一個實例的字符串。
返回調用
而uriUnescaped由此定義
uriUnescaped ::: uriAlpha編碼(componentString,unescapedURIComponentSet)的結果| DecimalDigit | uriMark
其中
uriAlpha ::: A B C d E F G H I J K L M N 2 O p q - [R式T U,V,的1瓦特X Y Z A B C d E F G H I J K L M N 2 O P Qř式T U V W X YŽ
uriMark :::之一 - _。 ! 〜*'(
DecimalDigit ::: 0 1 2 3 4 5 6 7 8 9
相關問題
- 1. 什麼是字符編碼?
- 2. SCCS「是什麼」的字符串不是由編譯器
- 3. 什麼字符是html編碼的?
- 4. 使用javascript encodeURIComponent函數編碼空格
- 5. 這是什麼字符編碼?
- 6. 這是什麼字符編碼?
- 7. 什麼字符不被編碼?
- 8. PHP:這個字符串的字符編碼是什麼?
- 9. decodeURIComponent(encodeURIComponent(string))的結果是什麼?
- 10. 字符編碼問題和PHP - 這是什麼編碼?
- 11. 什麼是符合此轉換的字符編碼:從「§」到「Ç」?
- 12. 什麼是編碼URL的字符?瀏覽器還是PHP?
- 13. 這是什麼編碼?需要解碼一些字符串。未知的編碼
- 14. 這是什麼javascript編碼風格?
- 15. 這個凹槽編碼是什麼? #javascript
- 16. 如何編寫相當於javascript的encodeuricomponent的進度代碼?
- 17. 什麼是VB.NET下的字符串的默認編碼?
- 18. 什麼是「+」字符的iOS正確的URL編碼?
- 19. 爲什麼IIS拒絕編碼字符
- 20. JavaScript字符編碼+ Internet Explorer 9編碼
- 21. 什麼樣的編碼器像這樣編碼字符串?
- 22. 什麼是' - '的ASCII字符碼?
- 23. 什麼是HTTP請求字符串的正確編碼?
- 24. 什麼是JAX-RS的默認字符編碼?
- 25. 這是什麼Perl編碼的字符串?
- 26. System.Windows.Forms.RichTextBox用於unicode字符的是什麼編碼?
- 27. 這個字符串中使用的編碼方法是什麼?
- 28. 在URL中編碼+和字符的正確方法是什麼
- 29. 這個文件的字符編碼是什麼?
- 30. Eclipse javascript字符編碼
之一)而現在的明顯的問題是:你爲什麼不能使用'encodeURIComponent'本身? – 2011-06-07 14:09:02
*「我正在編寫一個函數,它的行爲與原生函數的行爲完全一樣」*乞求該問題...... – 2011-06-07 14:22:55
@Felix:我正在編寫的內容不在JavaScript中。它適用於Java和Perl。我想要獨立的子程序,所以這可以在沒有任何庫需要的情況下工作。我也想確保它與JavaScript等價物相同。 – 2011-06-07 16:58:21