RFC 3987 IRI Syntax Support

Summary

Implement RFC 3987 Internationalized Resource Identifiers (IRIs).

Background

IRIs extend URIs to support Unicode characters beyond ASCII.

Requirements

  • Parse IRI with Unicode characters in path
  • Parse IRI with Unicode characters in query
  • Parse IRI with Unicode characters in fragment
  • Handle IDNA (Internationalized Domain Names)
  • Proper UTF-8 handling

RFC 3987 Components

  • iunreserved = unreserved / ucschar
  • ipchar = iunreserved / pct-encoded / sub-delims / ":" / "@"
  • iquery = ipchar / iprivate / "/" / "?"

Acceptance Criteria

  • Parse IRIs with non-ASCII characters
  • Convert IRI to URI (ASCII encoding)
  • Convert URI to IRI (decode when possible)
  • Tests with international domain names
  • Tests with CJK characters in path