Ce face Uri.encodeComponent
Într-o adresă web, caractere ca spațiul, &, /, ?, # și literele cu diacritice trebuie scrise codificat, cu % urmat de cod hexazecimal (UTF-8). Uri.encodeComponent('Iași & Cluj') dă Ia%C8%99i%20%26%20Cluj. Uri.decodeComponent face transformarea inversă.
Folosește-le pentru o singură bucată a adresei (o valoare de parametru, un segment de cale), pentru că ele codifică și / și ?. Pentru o adresă întreagă există Uri.encodeFull, care lasă separatorii neatinși. Pentru formulare (unde spațiul devine +) există Uri.encodeQueryComponent.
De cele mai multe ori nu ai nevoie de ele direct: constructorii Uri(...) și Uri.https codifică singuri părțile.
Parametri
| Parametru | Descriere |
|---|---|
component |
Textul de codificat. |
encodedComponent |
Textul codificat. |
Ce returnează
Un String.
Exemple
Exemplul 1: Codificare și decodificare
void main() {
var text = 'Iași & Cluj / 2026?';
var cod = Uri.encodeComponent(text);
print(cod);
print(Uri.decodeComponent(cod));
print(Uri.encodeFull('https://exemplu.ro/căutare?oraș=Iași'));
print(Uri.encodeQueryComponent('ana maria'));
print(Uri.decodeComponent('Bra%C8%99ov'));
}
Rezultat
Ia%C8%99i%20%26%20Cluj%20%2F%202026%3F
Iași & Cluj / 2026?
https://exemplu.ro/c%C4%83utare?ora%C8%99=Ia%C8%99i
ana+maria
Brașov
Exemplul 2: Un link de partajare
void main() {
var titlu = 'Rețete: sarmale & cozonac';
var adresa = 'https://dexblog.ro/retete?id=7';
var link = 'https://exemplu.ro/share?text=${Uri.encodeComponent(titlu)}&url=${Uri.encodeComponent(adresa)}';
print(link);
var u = Uri.parse(link);
print(u.queryParameters['text']);
print(u.queryParameters['url']);
}
Rezultat
https://exemplu.ro/share?text=Re%C8%9Bete%3A%20sarmale%20%26%20cozonac&url=https%3A%2F%2Fdexblog.ro%2Fretete%3Fid%3D7
Rețete: sarmale & cozonac
https://dexblog.ro/retete?id=7
Greșeli frecvente
- Codifici o adresă întreagă cu
encodeComponentși obțiihttps%3A%2F%2F..., care nu mai funcționează ca link. FoloseșteencodeFullpentru adrese întregi. - Codifici de două ori:
%devine%25și textul ajunge stricat la destinație.
Comenzi înrudite
Uri: O adresă web (URL) sau de fișier, desfăcută în părți: schemă, host, port, cale, parametri și fragment.Uri.queryParameters: queryParameters dă parametrii de după ? ca Map, decodificați; pathSegments dă bucățile căii, ca listă.Uri.https: Construiește rapid o adresă https:// (sau http:// cu Uri.http) din domeniu, cale și parametri.