Avatar ·

Quando usar escape em vez de encodeURI / encodeURIComponent em JavaScript?

Olá! Recentemente comecei a estudar JavaScript e me deparei com uma confusão ao trabalhar com URL encoding. Em diferentes exemplos de código, vejo três funções: `escape()`, `encodeURI()` e `encodeURIComponent()`. Todas parecem fazer a mesma coisa — substituir caracteres especiais por sua representação percentual, mas não entendo quando usar cada uma. Por exemplo, estou escrevendo um pequeno script para enviar dados para o servidor via requisição GET. Preciso passar parâmetros na URL, incluindo cirílico, espaços e sinais de pontuação. Se eu usar `escape()`, obtenho algo como `%u041F%u0440%u0438%D0%B2%D0%B5%D1%82`, enquanto com `encodeURIComponent()` obtenho `%D0%9F%D1%80%D0%B8%D0%B2%D0%B5%D1%82`. Qual opção é a correta? Também ouvi dizer que `escape()` está obsoleto, mas ainda é usado em projetos antigos. Quando exatamente se deve usar `escape()`?