iri 0.2.1 copy "iri: ^0.2.1" to clipboard
iri: ^0.2.1 copied to clipboard

A Dart implementation of RFC3987 - Internationalized Resource Identifiers (IRIs)

example/iri_example.dart

// Allow print for demo purposes
// ignore_for_file: avoid_print

import 'package:iri/iri.dart';

void main() {
  // Create an IRI from a string containing non-ASCII characters.
  final iri = Iri.parse('https://例子.com/pȧth?q=1'); // 例子 means "example"

  // Print the original IRI string.
  print('Original IRI: $iri');
  // Output: Original IRI: https://例子.com/pȧth?q=1

  // Convert the IRI to its standard URI representation.
  // The host is Punycode-encoded, and path characters are percent-encoded.
  final uri = iri.toUri();
  print('Converted URI: $uri');
  // Output: Converted URI: https://xn--fsqu00a.com/p%C8%A7th?q=1

  // Access components of the IRI (decoded).
  print('Scheme: ${iri.scheme}'); // Output: Scheme: https
  print('Host: ${iri.host}'); // Output: Host: 例子.com
  print('Path: ${iri.path}'); // Output: Path: /pȧth
  print('Query: ${iri.query}'); // Output: Query: q=1
}
4
likes
160
points
149
downloads

Publisher

verified publisherdropbear.dev

Weekly Downloads

A Dart implementation of RFC3987 - Internationalized Resource Identifiers (IRIs)

Repository (GitHub)
View/report issues

Topics

#rfc3987 #standards #internationalisation #unicode #iri

Documentation

API reference

License

MIT (license)

Dependencies

meta, punycoder, unorm_dart

More

Packages that depend on iri