Re: [I18nrp] Mappings for IDNA2008 ?

"Patrik Fältström " <> Fri, 08 February 2019 07:56 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id A801E1288BD for <>; Thu, 7 Feb 2019 23:56:34 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.722
X-Spam-Status: No, score=-1.722 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.979, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id RKXfayj-02dk for <>; Thu, 7 Feb 2019 23:56:32 -0800 (PST)
Received: from ( []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id B5B7C130DC2 for <>; Thu, 7 Feb 2019 23:56:32 -0800 (PST)
Received: from [] (unknown [IPv6:2a01:3f0:1:0:5188:8c72:8a75:6f84]) by (Postfix) with ESMTPSA id 7752F26775; Fri, 8 Feb 2019 08:56:29 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple;; s=mail; t=1549612589; bh=LPWDj9fvA9JliIhODv1CIEPYt/7O5SwEjRKeieGyjgM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rNAYneZKzmUQKA62WhEHm2YRzpbZXYviCrleAOZIDsZGmnD1J+XfKvuGPpUuMw3aT aZLrMPqshESu+uA3twcZ2NXv/mh5vBAuUdQZ2seJ6qm300n148cOclkln4G4VCGPQn wGpu3vMEYVr83yzi+4aGu7Ot0vU5eUYzE/9C1MYs=
From: "Patrik =?utf-8?b?RsOkbHRzdHLDtm0=?=" <>
To: "Asmus Freytag" <>
Date: Fri, 08 Feb 2019 08:56:29 +0100
X-Mailer: MailMate (1.12.4r5597)
Message-ID: <>
In-Reply-To: <>
References: <20190204225047.02583200DC1666@ary.qy> <> <> <> <> <>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=_MailMate_9839D7B8-BF91-4DCA-A578-2CF80D7B1065_="; micalg=pgp-sha1; protocol="application/pgp-signature"
Archived-At: <>
Subject: Re: [I18nrp] Mappings for IDNA2008 ?
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Internationalization Review Procedures <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 08 Feb 2019 07:56:35 -0000

On 5 Feb 2019, at 18:09, Asmus Freytag wrote:

> OK, if you make the choice that all of this should happen, then what?
> You'll have to use some tables / algorithm to do the mapping. Even when locale dependent (notionally) you have 90%+ of all cases that are unchanged and some small subset would get adjusted (tailored).
> That makes providing generic mapping tables useful.

I can as well say it is completely useless for the cases where the mapping *IS* special.

>> One can not (IETF found when discussing IDNA2003) do everything “in one go”.
>> 1. Mapping
>> 2. Validation
> You've lost me here. I would need a bit more background to understand this statement.
> I assume that "mapping" is something you do when prepping a user-supplied string for lookup.

Yes, case folding (LOCALE-dependent), normalization and what not.

> But not sure what "validation" refers to.

Validation that a label really is an A-LABEL/U-LABEL, i.e. valid according to IDNA2008 (or not), including (when you do call some library) conversion between A-LABEL and U-LABEL.

I.e. this discussion comes up when programmers ask how they should "convert a random string to punycode".

Some people think you can call convertToPunycode($randomString) and what I say is that you have to call mapAndNormalize($randomString) and then toALabel($randomstring) and toULabel($randomString).