logo
GeekFormat

URL-codering

Code code
URL-invoer
0 chars

Gratis online URL-code/decodeertool. Ondersteunt 4 modi encodeURIComponent/encodeURI/RFC 3986, real-time markering van gecodeerde tekens, meerdere regels batchmodus, Query Only voor alleen parameterwaardecodering. Lokale browserverwerking, nul gegevensupload.

Gerelateerde aanbevelingen

Toepassingsgevallen

  • API-parameterdebugging: vergelijk uitvoer van encodeURIComponent en encodeURI om problemen met interfacehandtekeningmismatch op te lossen
  • Log-decodering: decodeer batchgewijs URL-gecodeerde inhoud in logs om leesbare tekst te herstellen
  • URL-bouw: Query Only-modus behoudt sleutelnamen en codeert alleen waarden, om formaatfouten bij handmatige samenvoeging te voorkomen
  • Frontend-ontwikkeling: markering helpt begrijpen welke tekens worden ontsnapt, handig voor het debuggen van paginadosering
  • Gegevensmigratie: verwerk batchgewijs URL-gecodeerde gegevens uit verouderde systemen om naar nieuw formaat te converteren

Functies

  • Vier coderingsmodi: wissel tussen encodeURIComponent / encodeURI / full / RFC 3986 met één klik, vergelijk uitvoerverschillen in realtime
  • Coderingsmarkering: markeert ontsnapte %XX-tekens in realtime, amberkleurige markering maakt coderingsresultaten direct zichtbaar
  • Batchmodus: ondersteunt meerdere regels batchcodering/decodering, elke regel wordt onafhankelijk verwerkt, ideaal voor logs of bulkgegevens
  • Query Only-modus: codeert alleen het parameterwaardegedeelte van de URL (na het is-gelijk-teken), sleutelnamen, tekens en padstructuur blijven intact
  • Realtime debounce: codeert/decodeert automatisch binnen 300 ms, geen knoppen nodig, resultaten verschijnen tijdens het typen
  • Teken telling: toont het aantal ingevoerde tekens in realtime, handig voor het controleren van API-parameterlengtelimieten

Hoe te gebruiken

  1. Voer de URL of tekst in die u wilt coderen/decoderen
  2. Kies coderingsrichting (Coderen/Decoderen) en modus (Component / URI / full / RFC 3986)
  3. Schakel batchmodus in voor meerregelige gegevens of Query Only voor alleen parameterwaardecodering
  4. Controleer het gemarkeerde resultaat en kopieer de gecodeerde tekenreeks voor gebruik in API-aanroepen of URL-bouw

Veelgestelde vragen

Wat is het verschil tussen encodeURIComponent en encodeURI?

encodeURIComponent codeert alle onveilige tekens, inclusief &, =, ?, etc., dus geschikt voor het coderen van individuele parameterwaarden. encodeURI behoudt structurele URL-tekens (:, /, ?, #, etc.), dus geschikt voor het coderen van volledige URL's. Gebruiksscenario: Component voor parameterwaarden, URI voor volledige URL's.

Wat is het verschil tussen RFC 3986 en standaardcodering?

RFC 3986 is de bijgewerkte URL-standaardversie, die tilde ~ als een veilig teken beschouwt dat niet hoeft te worden gecodeerd, terwijl oudere standaarden het coderen als %7E. Het gebruik van RFC 3986 kan parsingverschillen op sommige servers voorkomen en betere compatibiliteit bieden.

In welke scenario's wordt de Query Only-modus gebruikt?

Gebruikt wanneer u een URL-querystring heeft zoals ?name=张三&city=北京 en alleen de parameterwaarden wilt coderen zonder sleutelnamen en tekens te wijzigen. In dit geval blijven name en city ongewijzigd, en de waarden worden gecodeerd als %E5%BC%A0%E4%B8%89 en %E5%8C%97%E4%BA%AC.

Moeten spaties worden gecodeerd als + of als %20?

In het application/x-www-form-urlencoded-formaat (HTML-formulierverzending) worden spaties gecodeerd als +. Maar in URL-paden en in encodeURIComponent worden spaties altijd gecodeerd als %20. Deze tool gebruikt standaard het %20-formaat.

Waarom geven verschillende tools verschillende resultaten voor hetzelfde Chinese karakter?

Dit hangt af van de tekencoderingsmethode. Deze tool gebruikt UTF-8-codering (webstandaard), het Chinese karakter '中' wordt gecodeerd als %E4%B8%AD. Als andere tools GBK-codering gebruiken, is het resultaat %D6%D0. Het wordt aanbevolen om altijd UTF-8 te gebruiken voor web-URL's.

Waar is coderingsmarkering voor?

Markeert tekens gecodeerd in %XX-formaat (zoals spatie→%20) in realtime, helpt coderingsregels te begrijpen en problemen op te lossen. Letters en cijfers zijn veilige tekens die niet worden gecodeerd, alleen Chinees en speciale tekens worden gecodeerd.

Moet het %-teken zelf worden gecodeerd?

Ja. % is het beginteken voor URL-codering-escaping. Als een letterlijke % in een parameterwaarde voorkomt, moet deze worden gecodeerd als %25; anders wordt deze ten onrechte geïnterpreteerd als een coderingsprefix, wat parseerfouten veroorzaakt. Bijv. 100% moet worden gecodeerd als 100%25.

Wat is URL-codering?

URL-codering (procentcodering) is het proces van het converteren van onveilige tekens in URL's naar %XX-formaat. URL's mogen slechts een kleine subset van ASCII-tekens bevatten (letters, cijfers, -_.~), alle andere tekens (inclusief Chinees, spaties, speciale tekens) moeten worden gecodeerd voordat ze in URL's worden doorgegeven. Bijv. spatie wordt %20, Chinees karakter '中' wordt %E4%B8%AD.

**encodeURIComponent vs encodeURI**: Dit zijn de twee meest gebruikte coderingsfuncties. encodeURIComponent codeert grondiger, inclusief parameterscheidingstekens zoals &, =, ?, dus geschikt voor het coderen van individuele parameterwaarden. encodeURI behoudt de URL-structuur (scheme://, pad, /, ?, #), dus geschikt voor het coderen van volledige URL's. Onjuist gebruik leidt tot fouten bij het parseren van parameters.

**RFC 3986 vs oude standaarden**: RFC 3986 beschouwt tilde ~ als een veilig teken dat niet hoeft te worden gecodeerd, terwijl vroege standaarden het coderen als %7E. Het gebruik van RFC 3986 vermindert onnodige escaping, verbetert de leesbaarheid van URL's en voorkomt parsingproblemen met %7E op sommige servers.

**Query Only-modus**: Gebruikt wanneer u alleen parameterwaarden in de URL-querystring wilt coderen, zonder sleutelnamen, is-gelijk-tekens en &-tekens te wijzigen. Bijv. ?name=张三 wordt gecodeerd als ?name=%E5%BC%A0%E4%B8%89, waarbij sleutelnamen leesbaar blijven en alleen waarden worden gecodeerd.

**Coderingsmarkering**: Markeert in realtime %XX-formaattekens met amberkleur, zodat gebruikers direct kunnen zien welke tekens zijn gecodeerd. Dit helpt coderingsregels te begrijpen: letters en cijfers zijn meestal veilige tekens die niet worden gecodeerd, alleen Chinees en speciale tekens worden gecodeerd. Alle berekeningen worden lokaal in de browser uitgevoerd, er worden geen gegevens geüpload.

术语表

Procentcodering (Percent-encoding)
De officiële naam voor URL-codering, een coderingsmethode die tekens weergeeft met % gevolgd door twee hexadecimale cijfers. Bijv. spatie wordt %20, Chinees karakter '中' wordt %E4%B8%AD.Wikipedia - Percent-encoding
encodeURIComponent
JavaScript-ingebouwde functie, codeert alle tekens behalve A-Z a-z 0-9 - _ . ! ~ * ' ( ). Wordt het meest gebruikt voor het coderen van individuele queryparameterwaarden.
encodeURI
JavaScript-ingebouwde functie, behoudt structurele URL-tekens (: / ? # [ ] @ ! $ & ' ( ) * + , ; =) en codeert alleen tekens die daadwerkelijk moeten worden gecodeerd. Gebruikt voor het coderen van volledige URL's.
RFC 3986
De nieuwste IETF-standaard voor URI algemene syntaxis (2005), definieert URL-coderingsregels en classificeert tilde ~ als een niet-gereserveerd teken (geen codering nodig). Vervangt oude RFC 2396 en RFC 1738.RFC 3986
Gereserveerde tekens (Reserved Characters)
Tekens met speciale betekenis in URL's, zoals : / ? # [ ] @ ! $ & ' ( ) * + , ; =. Deze tekens moeten worden gecodeerd wanneer ze als gegevens worden gebruikt, maar niet in hun structurele posities.
Niet-gereserveerde tekens (Unreserved Characters)
Veilige tekens die in elke URL-positie kunnen worden gebruikt zonder codering, inclusief A-Z, a-z, 0-9, -, _, ., ~ (per RFC 3986).
Query String
Het deel van de URL na ?, bestaande uit key=value-paren gescheiden door &. Bijv. in ?name=张三&age=20 zijn name=张三 en age=20 twee parameters.
URLSearchParams
API geleverd door moderne browsers voor het eenvoudig bouwen en parseren van URL-querystrings, met automatische codering en decodering. Veiliger en betrouwbaarder dan handmatige tekenreekssamenvoeging.
application/x-www-form-urlencoded
Het standaard verzendformaat voor HTML-formulieren, waarbij spaties worden gecodeerd als + in plaats van %20, wat enigszins verschilt van encodeURIComponent. Serverframeworks verwerken meestal beide formaten automatisch.
UTF-8-codering
De standaard tekencoderingsmethode voor het web. Bij URL-codering worden niet-ASCII tekens (zoals Chinees, emoji) eerst geconverteerd naar UTF-8-bytereeksen, vervolgens wordt elke byte gecodeerd in %XX-formaat.

Vergelijking van tekens die in 4 coderingsmodi worden ontsnapt

TekenBetekenisencodeURIComponentencodeURIRFC 3986
SpatieSpatie%20%20%20
!Uitroepteken%21!%21
#Fragment-ID%23#%23
$Dollarteken%24$%24
&Parameterscheidingsteken%26&%26
'Aanhalingsteken%27'%27
(Haakje openen%28(%28
)Haakje sluiten%29)%29
*Asterisk%2A*%2A
+Plusteken%2B+%2B
,Komma%2C,%2C
/Padseparator%2F/%2F
:Dubbele punt%3A:%3A
;Puntkomma%3B;%3B
=Is-gelijk-teken%3D=%3D
?Queryteken%3F?%3F
@At-teken%40@%40
~Tilde%7E%7E~

Snelle referentie voor veelvoorkomende gereserveerde URL-tekens

GecodeerdOrigineel tekenGebruik in URL
%20(spatie)Spatie
%21!Subscheidingsteken
%23#Fragment-ID (hash)
%25%Het escape-teken zelf
%26&Query-parameterscheidingsteken
%2B+Plusteken / spatie in formulier
%2F/Padseparator
%3A:Schemascheidingsteken
%3D=Sleutel-waardescheidingsteken
%3F?Begin van querystring
%40@Auth/e-mailscheidingsteken
%5B[Arrayparameter (RFC 3986)

Code Examples

URL-codering/decodering in JavaScript

// encodeURIComponent: codeert individuele parameterwaarden (meest gebruikt)
const param = encodeURIComponent('张三&李四');
console.log(param); // %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

// encodeURI: codeert volledige URL (behoudt structurele tekens :/?#&=)
const url = encodeURI('https://example.com/search?q=hallo wereld');
console.log(url);

// Decoderen
const decoded = decodeURIComponent(param);
console.log(decoded); // 张三&李四

// RFC 3986-compatibel (~ niet gecodeerd)
function rfc3986Encode(str) {
  return encodeURIComponent(str).replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase());
}

// URLSearchParams API (moderne manier, automatische codering)
const params = new URLSearchParams({ name: '张三', city: '北京' });
console.log(params.toString());
// name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%AC

URL-codering/decodering in Python

from urllib.parse import quote, unquote, urlencode, quote_plus

# quote: vergelijkbaar met encodeURIComponent
encoded = quote('张三&李四')
print(encoded)  # %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

# RFC 3986-modus (~ standaard niet gecodeerd)
print(quote('hello~world'))  # hello~world

# quote_plus: spaties gecodeerd als + (formulierformaat)
print(quote_plus('hello world'))  # hello+world

# Decoderen
print(unquote(encoded))  # 张三&李四

# urlencode: querystring bouwen
params = urlencode({'name': '张三', 'city': '北京'})
print(params)
# name=%E5%BC%A0%E4%B8%89&city=%E5%8C%97%E4%BA%AC

URL-codering/decodering in Java

import java.net.URLEncoder;
import java.net.URLDecoder;
import java.net.URI;
import java.nio.charset.StandardCharsets;

public class URLEncodeExample {
    public static void main(String[] args) throws Exception {
        // URL-codering (URLEncoder - formulierformaat, spaties worden +)
        String encoded = URLEncoder.encode("张三&李四", "UTF-8");
        System.out.println(encoded);
        // %E5%BC%A0%E4%B8%89%26%E6%9D%8E%E5%9B%9B

        // Decoderen
        String decoded = URLDecoder.decode(encoded, "UTF-8");
        System.out.println(decoded); // 张三&李四

        // Volledige URL bouwen (URI-klasse handelt codering automatisch af)
        URI uri = new URI("https", "example.com", "/search", "q=hallo", null);
        System.out.println(uri.toASCIIString());
    }
}

Authoritative References