¿Cómo evito la doble codificación de URL al representar las URL en mi sitio web?

Los usuarios proporcionan tanto URLs escapadas correctamente como URLs en bruto a mi sitio web en una entrada de texto; Por ejemplo, considero que estas dos URL son equivalentes:

https://www.cool.com/cool%20beans
https://www.cool.com/cool beans

Ahora quiero hacer estos como<a> Etiquetas más tarde, al ver estos datos. Estoy atascado entre la codificación del texto dado y obtener estos enlaces:

<a href="https://www.cool.com/cool%2520beans">   <!-- This one is broken! -->
<a href="https://www.cool.com/cool%20beans">

O no codificarlo y conseguir esto:

<a href="https://www.cool.com/cool%20beans">
<a href="https://www.cool.com/cool beans">       <!-- This one is broken! -->

¿Cuál es la mejor salida desde el punto de vista de la experiencia del usuario con los navegadores modernos? Estoy dividido entre hacer una pasada de decodificación sobre su entrada, o la segunda opción que enumeré anteriormente donde no codificamoshref atributo.

Respuestas a la pregunta(1)

Su respuesta a la pregunta