URLs need to be UTF-8 encoded.
Take care: UTF-8 is not ISO-Latin-1 or any of its siblings or derivatives (like windows code pages). This is an encoding that has the potential for multibyte characters and requires proper care in handling.
Anything that falls outside the normal US ascii range should be %encoded (note: if you have UTF-8 sequences you have to %encode them). Alpha (a-zA-Z), digits (0-9) hyphen (-), period (.), underscore (_), or tilde (~) should never be encoded (normalization rules).
If you do output it in html or xml: you need to additionally encode " ' < > and & with the html entities (" ' < > and & as well.
That said: make your life easy and don't go for URLs with accented characters as they get mutilated beyond recognition anyway.