<div dir="ltr"><div class="gmail_default" style><font face="times new roman, serif"><br></font></div><div class="gmail_extra"><div><div class="gmail_signature"><div dir="ltr"><div><div><i><font face="times new roman, serif"><span style="font-style:normal"><i></i></span><i></i></font></i></div></div></div></div></div>
<font face="times new roman, serif"><br></font><div class="gmail_quote"><font face="times new roman, serif">On Wed, Jan 28, 2015 at 10:39 AM, Vint Cerf <span dir="ltr"><<a href="mailto:vint@google.com" target="_blank">vint@google.com</a>></span> wrote:<br></font><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><font face="times new roman, serif">i had something different in mind. What was key to IDNA2008 was the uniqueness of the UNICODE/PUNYCODE representations. Essentially, after normalization, one expects that the two strings are unambiguously equivalent.</font></div></blockquote><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif"><div class="gmail_default" style="display:inline">​They are, according to Unicode normalization.​</div> </font></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif"> </font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><font face="times new roman, serif">mapping from normalized unicode to punycode and back should produce the same (character for character) string. </font></div></blockquote><div><font face="times new roman, serif"><br></font></div><div><div class="gmail_default"><font face="times new roman, serif">​Yes, if Y = NFC(X), then unicode(punycode(Y)) = Y​</font></div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif"> </font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><font face="times new roman, serif">The problem that the Hamza discussion illustrates, as I understand it, is that there is no normalization that produces this result if one string uses the combined character and another uses the composed character sequence - no normalization produces an unambiguous result. </font></div></blockquote><div><font face="times new roman, serif"><br></font></div><div><div><font face="times new roman, serif">​It does produce an unambiguous result<div class="gmail_default" style="display:inline">​ in your sense of</div><div class="gmail_default" style="display:inline"> "</div>mapping from normalized unicode to punycode and back should produce the same (character for character) string.<div class="gmail_default" style="display:inline">​"​</div></font></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">U+08A1 ARABIC LETTER BEH WITH HAMZA ABOVE</font></div><div><font face="times new roman, serif"><br></font></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div><b><font face="times new roman, serif">NFC(U+08A1) = U+08A1</font></b></div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">U+0628 ARABIC LETTER BEH​ ​U+0654 ARABIC HAMZA ABOVE</font></div><div><font face="times new roman, serif"><br></font></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><b><font face="times new roman, serif">​NFC(​​U+0628​<div class="gmail_default" style="display:inline">​,</div>U+0654​)​ = U+0628​+U+0654​</font></b></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">​These happen be confusable<div class="gmail_default" style="font-family:'times new roman',serif;display:inline">​ (with a good font and rendering engine)​</div>, but Unicode doesn't consider them to be the same under normalization. That is the case for <b>thousands of other characters </b><div class="gmail_default" style="display:inline"><b>​or character sequences</b> ​</div>that are confusable<div class="gmail_default" style="display:inline">​,​</div> but don't normalize together according to NFC.<div class="gmail_default" style="display:inline">​ </div></font></div><div><div class="gmail_default" style="display:inline"><font face="times new roman, serif"><br></font></div></div><div><font face="times new roman, serif"><div class="gmail_default" style="display:inline">For example, the same is true for</div>:</font></div><div><font face="times new roman, serif"><br></font></div><div><div><font face="times new roman, serif">U+006F LATIN SMALL LETTER O</font></div><div><font face="times new roman, serif"><br></font></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><b><font face="times new roman, serif">NFC(U+006F​) = ​U+006F</font></b></div></div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">U+043E CYRILLIC SMALL LETTER O</font></div><div><font face="times new roman, serif"><br></font></div></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><b><font face="times new roman, serif">NFC(U+043E​) = ​U+043E​</font></b></div></div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><div><div><font face="times new roman, serif"><br></font></div><div><div class="gmail_default" style="display:inline"><font face="times new roman, serif">​And for:</font></div></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">U+00F8 ( ø ) LATIN SMALL LETTER O WITH STROKE</font></div><div><font face="times new roman, serif"><br></font></div></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><b><font face="times new roman, serif">​NFC(​U+00F8​) = U+00F8​</font></b></div></div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">U+006F, U+0337 ( o̷ ) LATIN SMALL LETTER O, COMBINING SHORT SOLIDUS OVERLAY</font></div><div><font face="times new roman, serif"><br></font></div></div></div></div></div><blockquote style="margin:0px 0px 0px 40px;border:none;padding:0px"><div class="gmail_extra"><div class="gmail_quote"><div><div><div><b><font face="times new roman, serif">NFC(U+006F, U+0337​) = ​U+006F, U+0337</font></b></div></div></div></div></div></blockquote><div class="gmail_extra"><div class="gmail_quote"><div><div><font face="times new roman, serif"><br></font></div><div><div class="gmail_default"><font face="times new roman, serif">​(with a good font and rendering engine, ​<U+006F, U+0337> will look the same as U+00F8)</font></div></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif"><div class="gmail_default" style="display:inline">Unicode does not guarantee </div>that <div class="gmail_default" style="display:inline">​all ​</div>confusable characters will be mapped together by NFC<div class="gmail_default" style="display:inline"><b>—<i>and all the way along we have made it very clear that it does not guarantee it</i>.</b>​ The confusability issue is quite complex, and as Asmus pointed out, not something that is amenable to solution in the lowest level </div>protocol<div class="gmail_default" style="display:inline">​ (IDNA2008)​</div>.<div class="gmail_default" style="display:inline">​ There is far more about this in </div><a href="http://unicode.org/reports/tr36/">http://unicode.org/reports/tr36/</a><div class="gmail_default" style="display:inline">​ and ​</div><a href="http://unicode.org/reports/tr39/">http://unicode.org/reports/tr39/</a></font></div></div><div><div class="gmail_default" style="font-family:'times new roman',serif;display:inline">​</div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><span class=""><font color="#888888"><div><br></div><div>v</div><div><br></div></font></span></div><div class=""><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 3:43 AM, Mark Davis <img goomoji="2615" style="margin: 0px 0.2ex; vertical-align: middle; max-height: 24px;" alt="☕" src="cid:2615@goomoji.gmail">️ <span dir="ltr"><<a href="mailto:mark@macchiato.com" target="_blank">mark@macchiato.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><span><br><div class="gmail_quote">On Wed, Jan 28, 2015 at 9:20 AM, Vint Cerf <span dir="ltr"><<a href="mailto:vint@google.com" target="_blank">vint@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>I am reading your message as saying "ambiguity is ok if there are few instances of it" while some of us would like the handling of identifiers encoded with Unicode to be unambiguous. </div><div><div></div></div></blockquote></div><br></span><div><font face="times new roman, serif">The sense of "unambiguous" that matters to users is that when they read a sequence of glyphs, their interpretation of the underlying character sequence is correct (in normal environments, with common fonts).</font></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">That level of "unambiguous" was impossible, even before Unicode.</font></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">Take 8859-5, with both o and Russian o, or ASCII with "google.corn" vs "<a href="http://goog1e.com" target="_blank">goog1e.com</a>". [Both the 1 and lowercase L are an issue, but also in many fonts—in common use—users will read the (r + n) in the former as an m.]</font></div><div><font face="times new roman, serif"><br></font></div><div><font face="times new roman, serif">To extend Andrew's death analogy, there is no way that we can all live forever. However, there are clearly medical processes and social policies that can improve and extend the years that we all have. But to be productive, the focus needs to be on the big ticket items, and thus needs to be prioritized by real data.</font></div><span><div><div><div dir="ltr"><font face="'times new roman', serif"><div style="margin:0px;background-color:transparent"><div></div></div><div style="margin:0px;background-color:transparent"><br></div><div style="margin:0px;background-color:transparent"><a href="https://google.com/+MarkDavis" target="_blank">Mark</a></div><div style="margin:0px;background-color:transparent"><i><br></i></div><div style="margin:0px;background-color:transparent"><i>— Il meglio è l’inimico del bene —</i></div></font><div><div><font face="'times new roman', serif"><i><span style="font-style:normal"><i></i></span><i></i></i></font></div></div></div></div></div>
</span></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div>