<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Hi,<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I was wondering how well supported iDNA was in the more popular languages.<o:p></o:p></p><p class=MsoNormal>A quick search for &lt;programming language&gt; iDNA shows that most of them support iDNA, some going back to 2006 or earlier.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>These languages and libraries support IDNA. I have used IDN is some of them and the support has generally been very good.<o:p></o:p></p><p class=MsoNormal>java<o:p></o:p></p><p class=MsoNormal>php<o:p></o:p></p><p class=MsoNormal>node.js<o:p></o:p></p><p class=MsoNormal>python<o:p></o:p></p><p class=MsoNormal>.Net (C#, C++, F#, VB)<o:p></o:p></p><p class=MsoNormal>ICU<o:p></o:p></p><p class=MsoNormal>libIDN (C++, ruby)<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Most browsers also support IDNA very well.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>The one area that seems problematic (based on searching and problems reported) is JavaScript.<o:p></o:p></p><p class=MsoNormal>Despite the browser support, native Javascript support seems problematic and the libraries (JQuery etc.) don’t do a good job.<o:p></o:p></p><p class=MsoNormal>I am not surprised by the libraries as JS libraries often don’t do a good job of i18n support. However, I am surprised there isn’t a native dom function or ecmascript specification  for ToUnicode or ToASCII. Maybe my quick search missed it. <o:p></o:p></p><p class=MsoNormal>However, Node.js offers a punycode.js library for javascript users that is popularly recommended. I would normally consider the issue settled but I was concerned from the search that there may be several offerings out there called “punycode.js” that are not the same or the same quality. It bears a bit more research.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I think the support for RFC 3490-3494 is very good. There could be a question about support for the newer specs RFC 5890-5895 since they have only been around since 2010.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>To me this raises the question of where UASG should focus. If the industry supports the older specs very well perhaps UASG should give attention to the newer features in the 2010 specs.<o:p></o:p></p><p class=MsoNormal>I find myself questioning how much of a problem actually exists.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>UASG could consider a very superficial survey of where the problems are. For example, define a few test domains and perform the simplest tests with each of the programming environment.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>For example, in my own work I have an international domain I own (<a href="http://globalização.biz/">http://globalização.biz/</a>) which I use for testing email and domain name support. UASG could set up its own international TLD and subdomains and email account, and ask its community of developers to verity they can access the site with both Unicode and punycode forms and then submit information thru a web page to update a google doc to identify the library/ or framework and success or fail. The email account would just have an auto reply that acknowledges receipt of the mail confirming sending to and from an IDN email address. The google doc would be something like:<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><table class=MsoTableGrid border=1 cellspacing=0 cellpadding=0 style='border-collapse:collapse;border:none'><tr><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Language/Library<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Version<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Unicode Domain Test<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Punycode Domain Test<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Email Test<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Testers Name/Contact Info<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-left:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>Tester’s Additional Notes<o:p></o:p></p></td></tr><tr><td width=91 valign=top style='width:.95in;border:solid windowtext 1.0pt;border-top:none;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal>…<o:p></o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td><td width=91 valign=top style='width:.95in;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0in 5.4pt 0in 5.4pt'><p class=MsoNormal><o:p>&nbsp;</o:p></p></td></tr></table><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>After the initial survey, if it proves helpful more elaborate tests can be surveyed. Or more focus can be given to those programming environments that seem problematic.<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>tex<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>