At the meeting in Vancouver, Dave Thaler made a point that I found
convincing:
Where is the character set for IPv6 zone IDs specified? If we accept
that future interface names might include non-roman characters, then
we have to assume that to allow safe unambiguous use in URIs,
interface names have to undergo escaping.
And if the interface name itself is going to be escaped using URI "%
xx" notation, then why not escape the '%' the same way?
This argues in support of what Microsoft already did: Encode '%' as "%
25".
It's not my favourite outcome, but based on Dave Thaler's comment,
it's the one that gets my vote.
In the spirit of "be liberal with what you accept" the doc should
also advocate that URI parsers are forgiving about accepting bare '%'
signs -- i.e. a '%' not followed by two valid hex characters is left
untouched. This lets a human user copy-and-paste "fe80::a%en1" from a
"ping" command and have it work, though the strictly correct form
(which URI generators should output) remains "fe80::a%25en1".
Stuart Cheshire
--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------