Skip to content
UniKit

URL builder

Assemble a URL piece by piece — scheme, host, port, path, query parameters and fragment — with RFC 3986 percent-encoding for Chinese text, spaces and &=#, duplicate keys, sorting and a parsed comparison table.

Runs in your browserEvery computation happens in your browser — your data never leaves this device.

Final URL

Assembles and encodes locally — no address is ever requested.

Percent-encodingRFC 3986 keeps only A-Za-z0-9-._~; spaces become %20
Omit default portLeave the port out when it matches the scheme default

Final URL

Built URL
https://shop.example.com/search/%E5%85%B3%E9%94%AE%E8%AF%8D?q=%E6%97%A0%E7%BA%BF%20%E8%80%B3%E6%9C%BA&tag=audio%26video&page=2&tag=sale%231#results
Parsed comparison
Schemehttps
Host and portshop.example.com
Path (decoded)/search/关键词
Query parameters (decoded)q = 无线 耳机 | tag = audio&video | page = 2 | tag = sale#1
Fragment (decoded)results

What this tool does

  • Build search, filter or tracking links: Chinese keywords, spaces, & and # are encoded correctly so parameters stop getting truncated.
  • Need the same key twice (tag=a&tag=b)? Write one line per parameter — duplicate keys are never merged.
  • Debug a callback URL by filling path, parameters and fragment separately, then read the decoded comparison table to confirm each part.

Example

Input

scheme https; host shop.example.com; path /search/关键词; params q=无线 耳机, tag=audio&video, page=2, tag=sale#1; fragment results

Output

https://shop.example.com/search/%E5%85%B3%E9%94%AE%E8%AF%8D?q=%E6%97%A0%E7%BA%BF%20%E8%80%B3%E6%9C%BA&tag=audio%26video&page=2&tag=sale%231#results

Spaces become %20 rather than +, & becomes %26 and # becomes %23; Chinese characters in the path are encoded byte by byte as UTF-8.

Frequently asked questions

Should a space be %20 or +?

Both decode to a space in a query string, but they mean different things: %20 is the RFC 3986 encoding, while + only means space in application/x-www-form-urlencoded. To avoid servers treating + as a literal plus, this tool always uses %20.

Why must & and = be encoded?

They separate parameters and key/value pairs. An unencoded & inside a value starts a new parameter and an unencoded = splits the value, so they are encoded as %26 and %3D.

Are duplicate keys merged?

No. Each line is one parameter and duplicates are emitted as-is in input (or sorted) order, which is exactly what you need for array-style parameters like tag=a&tag=b.

Does sorting change the meaning?

Query parameter order is usually insignificant, but a few APIs sign the raw string and are order-sensitive. If the link needs a signature, keep the input order and follow the API documentation exactly.

Will the tool request the URL?

No. It only concatenates and encodes strings, validating the format once with the browser URL parser. No network request is made.

Keywords:url builderquery string builderurl encoderpercent encodingrfc 3986query parametersURL 构建URL 拼接查询参数百分号编码中文编码URL 参数编码

Related tools