1
resposta

Caracteres especiais e espaços na busca

Olá, tudo bem?

Eu tenho uma sugestão/dúvida!

Acredito que seria interessante comentar sobre caracteres especiais e espaços nos filtros dinâmicos, já que na prática não se vê isso em links de websites. Geralmente ao pesquisar um produto com acento e espaço em um e-commerce, os caracteres com acentos são substituídos pelo caractere normal, bem como os espaços são substituídos por algum outro caractere.

Fiz um teste em 2 e-commerces buscando por placa de vídeo, e os links ficaram da seguinte forma:

  • E-commerce 1: /search?q=placa%20de%20vídeo (substituiu os espaços por %20 e manteve o acento)
  • E-commerce 2: /busca/placa+de+video/ (substituiu os espaços por + e removeu o acento)

Nesse sentido, há um padrão de boa prática para tratar esses tipos de caracteres? E como isso pode ser aplicado no projeto do curso?

Obrigado desde já :)

1 resposta

Oi, Vinícius! Tudo bem?

De fato quando lidamos com filtros dinâmicos em JavaScript, é importante considerarmos o tratamento de caracteres especiais e espaços nos valores dos filtros, muito obrigada pela sugestão, o seu feedback é muito importante para conseguirmos aprimorar cada vez mais os nossos cursos!

A prática observada na qual os caracteres especiais e espaços são substituídos por códigos específicos, como %20 ou +, é conhecida como codificação de URL ou URL encoding.

A URL encoding é utilizada para garantir que os caracteres especiais e espaços sejam interpretados corretamente pelos navegadores e servidores web. Além disso, ela também é importante para evitar problemas de formatação e interpretação de URLs em diferentes sistemas.

Algumas convenções são amplamente utilizadas em URL encoding de caracteres especiais e espaços, como:

  • Espaços geralmente são codificados como "%20" ou "+".
  • Caracteres acentuados são geralmente convertidos para seu equivalente sem acento. Por exemplo, "á" seria convertido para "a", "é" para "e", e assim por diante.
  • Caracteres especiais: São codificados usando seu valor ASCII em hexadecimal precedido por "%". Por exemplo, o caractere "#" é codificado como "%23".

Todavia, existem muitos outros caracteres especiais, logo, converter cada um deles manualmente pode ser um problema. Dessa forma, o JavaScript fornece funções para executar esta tarefa, como a função encodeURI() que é usada para codificar o URI completo.

Espero ter ajudado na compreensão do problema. Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!

Um forte abraço e bons estudos!

Caso este post tenha te ajudado, por favor, marcar como solucionado ✓