組 query string 的值
任何使用者輸入要塞到 <code>?q=...</code> 都必須用 Component 模式。URI 模式會把 <code>=</code> 和 <code>&</code> 留下不編,如果值裡面有這些字元,整段 URL 會壞掉。
把任意文字編碼成 URL 安全的 percent-encoded 字串,或把編碼網址還原回明文。即時預覽、UTF-8 安全,完全在你的瀏覽器中執行。
拖放文字檔到這裡,或點擊選擇
任意 UTF-8 文字檔: .txt、.csv、.json、.url、.log
快速、精準、純瀏覽器執行 — 為開發者、寫手、debug 網址的人打造。
依用途選 Component、Full URI 或 Form 模式 — 編 query-string 值、整段網址、或 HTML form 內容,各有正確做法。
編碼/解碼都用瀏覽器原生 JavaScript 完成,文字和網址完全不離開你的裝置。
每次輸入都立即更新結果,不用按「編碼」按鈕,也沒有伺服器來回延遲。
Emoji、中文、日文、韓文、有重音的拉丁字、西里爾字母都能正確雙向轉換。
解碼時可選擇把 + 視為空格 — HTML form 用 application/x-www-form-urlencoded 時的慣例。
拖入 .txt、.csv、.json 一次編碼或解碼整個檔案,輸出乾淨的 .txt 下載。
三個瀏覽器原生 API、三種模式,全部在這個分頁裡跑。
每次按鍵,輸入字串會傳給一個小型 JavaScript 函式。沒有 debounce、沒有 API 呼叫、沒有 fetch — 函式在你的瀏覽器分頁中同步執行。
Component 呼叫 encodeURIComponent() — 編碼所有非 A-Z a-z 0-9 - _ . ~ 字元。URI 呼叫 encodeURI() — 保留 :/?#=& 讓整段 URL 結構維持有效。Form 用 encodeURIComponent 後把空格換成 +,符合 application/x-www-form-urlencoded 規範。
encodeURIComponent 和 encodeURI 內部會把字串轉成 UTF-8 位元組,再對每個非安全位元組做 percent-encoding。所以中文「中」會變 %E4%B8%AD — 完全符合 RFC 3986。
結果寫進唯讀的輸出框。按「複製」會用 navigator.clipboard.writeText() 寫入剪貼簿,按「下載」會用 Blob URL 存成 .txt,兩者都不離開瀏覽器。
選對模式可以避開 bug 的真實情境。
任何使用者輸入要塞到 <code>?q=...</code> 都必須用 Component 模式。URI 模式會把 <code>=</code> 和 <code>&</code> 留下不編,如果值裡面有這些字元,整段 URL 會壞掉。
有些聊天 app、PDF 看到網址裡有空格或非 ASCII 字元會壞掉。先用 URI 模式把整段網址跑一輪,變成到處都能正確貼上的格式。
當 API 拒絕你的請求時,把網址貼到 Decode 模式,看伺服器實際收到什麼。雙重編碼(<code>%</code> 自己被編成 <code>%25</code>)的問題會立刻浮現。
Debug <code>application/x-www-form-urlencoded</code> 的 POST body 時,記得勾「+ 視為空格」 — 那是瀏覽器的慣例,忘記勾是「為什麼我的使用者名稱出現一堆加號」這種 bug 的頭號原因。
你要編碼的網址常常含有真實客戶 email、ID、session token — 這些東西絕對不應該貼到陌生人的伺服器工具上。iKit URL Encoder 就是這個頁面裡早就載完的 JavaScript,輸入完全不離開你的分頁。
Component (encodeURIComponent) 會把所有非「保留字元」全部 percent-encode,適合 query 值、單一欄位。URI (encodeURI) 會保留 :/?#=& 這些 URL 結構字元,適合整段網址。Form (application/x-www-form-urlencoded) = Component + 空格變成 +,是 HTML form 用的慣例。
RFC 3986 定義一組「unreserved characters」不需要編碼:A-Z a-z 0-9 - _ . ~。其他都會被 percent-encoded。encodeURIComponent 還會多編碼 :/?#&=,但 encodeURI 不會 — 差別在編「query 值」還是「整段 URL」。
三個常見原因:(1) 原本是 Form 編碼,+ 應該被視為空格 — 把那個選項打開。(2) 雙重編碼 — 輸入被編了兩次,再解一次。(3) 無效的 percent 序列 — % 後面不是兩個 hex 字元。錯誤訊息會指出哪個位置。
Component 模式完全一樣 — 我們直接呼叫 encodeURIComponent。Form 模式多做 RFC 3986 + WHATWG 的調整(! ' ( ) * 變成 %21 %27 %28 %29 %2A)。URI 模式呼叫 encodeURI,等同大多數語言所說的「percent-encode 一段 URL」。
不會。整個工具就是這個頁面裡的 JavaScript,編碼解碼都在你的瀏覽器中完成。可以開 DevTools → Network 觀察 — 編碼解碼時不會發出任何請求。