{
    "content": [
        {
            "type": "text",
            "text": "# Net::IDN::UTS46 (perldoc)\n\n## NAME\n\nNet::IDN::UTS46 - Unicode IDNA Compatibility Processing (UTS #46)\n\n## SYNOPSIS\n\nuse Net::IDN:: ':all';\nmy $a = uts46toascii(\"müller.example.org\");\nmy $b = Net::IDN::UTS46::tounicode('EXAMPLE.XN--11B5BS3A9AJ6G');\n$domain =~ m/\\P{Net::IDN::UTS46::IsDisallowed} and die 'oops';\n\n## DESCRIPTION\n\nThis module implements the Unicode Technical Standard #46 (Unicode IDNA Compatibility\nProcessing). UTS #46 is one variant of Internationalized Domain Names (IDN), which aims to be\ncompatible with domain names registered under either IDNA2003 or IDNA2008.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **FUNCTIONS** (2 subsections)\n- **UNICODE CHARACTER PROPERTIES**\n- **AUTHOR**\n- **LICENSE**\n- **SEE ALSO**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "Net::IDN::UTS46",
        "section": "",
        "mode": "perldoc",
        "summary": "Net::IDN::UTS46 - Unicode IDNA Compatibility Processing (UTS #46)",
        "synopsis": "use Net::IDN:: ':all';\nmy $a = uts46toascii(\"müller.example.org\");\nmy $b = Net::IDN::UTS46::tounicode('EXAMPLE.XN--11B5BS3A9AJ6G');\n$domain =~ m/\\P{Net::IDN::UTS46::IsDisallowed} and die 'oops';",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [],
        "examples": [],
        "see_also": [],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 6,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 9,
                "subsections": []
            },
            {
                "name": "FUNCTIONS",
                "lines": 9,
                "subsections": [
                    {
                        "name": "uts46_to_ascii",
                        "lines": 24
                    },
                    {
                        "name": "uts46_to_unicode",
                        "lines": 15
                    }
                ]
            },
            {
                "name": "UNICODE CHARACTER PROPERTIES",
                "lines": 28,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "LICENSE",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 2,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "Net::IDN::UTS46 - Unicode IDNA Compatibility Processing (UTS #46)\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "use Net::IDN:: ':all';\nmy $a = uts46toascii(\"müller.example.org\");\nmy $b = Net::IDN::UTS46::tounicode('EXAMPLE.XN--11B5BS3A9AJ6G');\n\n$domain =~ m/\\P{Net::IDN::UTS46::IsDisallowed} and die 'oops';\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "This module implements the Unicode Technical Standard #46 (Unicode IDNA Compatibility\nProcessing). UTS #46 is one variant of Internationalized Domain Names (IDN), which aims to be\ncompatible with domain names registered under either IDNA2003 or IDNA2008.\n\nYou should use this module if you want an exact implementation of the UTS #46 specification.\n\nHowever, if you just want to convert domain names and don't care which standard is used\ninternally, you should use Net::IDN::Encode instead.\n",
                "subsections": []
            },
            "FUNCTIONS": {
                "content": "By default, this module does not export any subroutines. You may use the \":all\" tag to import\neverything.\n\nYou can omit the 'uts46' prefix when accessing the functions with a full-qualified module name\n(e.g. you can access \"uts46tounicode\" as \"Net::IDN::UTS46::uts46tounicode\" or\n\"Net::IDN::UTS46::tounicode\".\n\nThe following functions are available:\n",
                "subsections": [
                    {
                        "name": "uts46_to_ascii",
                        "content": "Implements the \"ToASCII\" function from UTS #46, section 4.2. It converts a domain name to\nASCII and throws an exception on invalid input.\n\nThis function takes the following optional parameters (%param):\n\nAllowUnassigned\n(boolean) If set to a true value, unassigned code points in the label are allowed. This\nis an extension over UTS #46.\n\nThe default is false.\n\nUseSTD3ASCIIRules\n(boolean) If set to a true value, checks the label for compliance with STD 3 (RFC 1123)\nsyntax for host name parts.\n\nThe default is true.\n\nTransitionalProcessing\n(boolean) If set to true, the conversion will be compatible with IDNA2003. This only\naffects four characters: 'ß' (U+00DF), 'ς' (U+03C2), ZWJ (U+200D) and ZWNJ (U+200C).\nUsually, you will want to set this to false.\n\nThe default is false.\n"
                    },
                    {
                        "name": "uts46_to_unicode",
                        "content": "Implements the \"ToUnicode\" function from UTS #46, section 4.3. It converts a domain name to\nUnicode and throws an exception on invalid input.\n\nThis function takes the following optional parameters (%param):\n\nAllowUnassigned\nsee above.\n\nUseSTD3ASCIIRules\nsee above.\n\nTransitionalProcessing\n(boolean) If given, this parameter must be false. The UTS #46 specification does not\ndefine transitional processing for ToUnicode.\n"
                    }
                ]
            },
            "UNICODE CHARACTER PROPERTIES": {
                "content": "This module also defines the character properties listed below.\n\nEach character has exactly one of the following properties:\n\n\"\\p{Net::IDN::UTS46::IsValid}\"\nThe code point is valid, and not modified (i.e. a deviation character) in UTS #46.\n\n\"\\p{Net::IDN::UTS46::IsIgnored}\"\nThe code point is removed (i.e. mapped to an empty string) in UTS #46.\n\n\"\\p{Net::IDN::UTS46::IsMapped}\"\nThe code point is replaced by another string in UTS #46.\n\n\"\\p{Net::IDN::UTS46::IsDeviation}\"\nThe code point is either mapped or valid, depending on whether the processing is\ntransitional or not.\n\n\"\\p{Net::IDN::UTS46::IsDisallowed}\"\nThe code point is not allowed in UTS #46.\n\n\"\\p{Net::IDN::UTS46::IsDisallowedSTD3Ignored}\"\nThe code point is not allowed in UTS #46 if \"UseSTDASCIIRules\" are used but would be ignored\notherwise.\n\n\"\\p{Net::IDN::UTS46::IsDisallowedSTD3Mapped}\"\nThe code point is not allowed in UTS #46 if \"UseSTDASCIIRules\" are used but would be mapped\notherwise.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Claus Färber <CFAERBER@cpan.org>\n",
                "subsections": []
            },
            "LICENSE": {
                "content": "Copyright 2011-2018 Claus Färber.\n\nThis library is free software; you can redistribute it and/or modify it under the same terms as\nPerl itself.\n",
                "subsections": []
            },
            "SEE ALSO": {
                "content": "Net::IDN::UTS46::Mapping, Net::IDN::Encode, UTS #46 (<http://www.unicode.org/reports/tr46/>)\n",
                "subsections": []
            }
        }
    }
}