Use URLComponents/URLQueryItem for standard form-URL encoding instead of manual percent-encoding with CharacterSet.alphanumerics, which included non-ASCII Unicode letters and had an unsafe raw-value fallback.