<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="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<meta name=Generator content="Microsoft Word 11 (filtered medium)">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0pt;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
h1
        {margin-top:12.0pt;
        margin-right:0pt;
        margin-bottom:3.0pt;
        margin-left:0pt;
        page-break-after:avoid;
        font-size:16.0pt;
        font-family:Arial;}
h2
        {margin-top:12.0pt;
        margin-right:0pt;
        margin-bottom:3.0pt;
        margin-left:0pt;
        page-break-after:avoid;
        font-size:14.0pt;
        font-family:Arial;
        font-style:italic;}
h3
        {margin-top:12.0pt;
        margin-right:0pt;
        margin-bottom:3.0pt;
        margin-left:0pt;
        page-break-after:avoid;
        font-size:12.0pt;
        font-family:Arial;}
h4
        {margin-top:12.0pt;
        margin-right:0pt;
        margin-bottom:3.0pt;
        margin-left:0pt;
        page-break-after:avoid;
        font-size:10.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
p.MsoHeader, li.MsoHeader, div.MsoHeader
        {margin:0pt;
        margin-bottom:.0001pt;
        border:none;
        padding:0pt;
        font-size:10.0pt;
        font-family:Arial;}
p.MsoFooter, li.MsoFooter, div.MsoFooter
        {margin:0pt;
        margin-bottom:.0001pt;
        border:none;
        padding:0pt;
        font-size:10.0pt;
        font-family:Arial;}
p.MsoTitle, li.MsoTitle, div.MsoTitle
        {margin-top:0pt;
        margin-right:0pt;
        margin-bottom:9.0pt;
        margin-left:0pt;
        text-align:center;
        font-size:16.0pt;
        font-family:Arial;
        font-weight:bold;}
p.MsoBodyText, li.MsoBodyText, div.MsoBodyText
        {margin-top:0pt;
        margin-right:0pt;
        margin-bottom:6.0pt;
        margin-left:0pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
p.MsoSubtitle, li.MsoSubtitle, div.MsoSubtitle
        {margin-top:0pt;
        margin-right:0pt;
        margin-bottom:18.0pt;
        margin-left:0pt;
        text-align:center;
        font-size:12.0pt;
        font-family:Arial;}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:blue;
        text-decoration:underline;}
p.Quote, li.Quote, div.Quote
        {margin-top:0pt;
        margin-right:36.0pt;
        margin-bottom:6.0pt;
        margin-left:36.0pt;
        font-size:12.0pt;
        font-family:"Times New Roman";
        font-style:italic;}
p.Wiki, li.Wiki, div.Wiki
        {margin:0pt;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.Graphic, li.Graphic, div.Graphic
        {margin-top:0pt;
        margin-right:0pt;
        margin-bottom:6.0pt;
        margin-left:0pt;
        text-align:center;
        font-size:10.0pt;
        font-family:Arial;
        font-style:italic;}
span.EmailStyle26
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;}
 /* Page Definitions */
 @page
        {mso-endnote-separator:url("cid:header.htm\@01C8E2D6.4C684640") es;
        mso-endnote-continuation-separator:url("cid:header.htm\@01C8E2D6.4C684640") ecs;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.Section1
        {page:Section1;}
 /* List Definitions */
 @list l0
        {mso-list-id:-132;
        mso-list-type:simple;
        mso-list-template-ids:-1328661930;}
@list l0:level1
        {mso-level-tab-stop:90.0pt;
        mso-level-number-position:left;
        margin-left:90.0pt;
        text-indent:-18.0pt;}
@list l1
        {mso-list-id:-131;
        mso-list-type:simple;
        mso-list-template-ids:-909054546;}
@list l1:level1
        {mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        margin-left:72.0pt;
        text-indent:-18.0pt;}
@list l2
        {mso-list-id:-130;
        mso-list-type:simple;
        mso-list-template-ids:531935922;}
@list l2:level1
        {mso-level-tab-stop:54.0pt;
        mso-level-number-position:left;
        margin-left:54.0pt;
        text-indent:-18.0pt;}
@list l3
        {mso-list-id:-129;
        mso-list-type:simple;
        mso-list-template-ids:2046339550;}
@list l3:level1
        {mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l4
        {mso-list-id:-128;
        mso-list-type:simple;
        mso-list-template-ids:82112870;}
@list l4:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:90.0pt;
        mso-level-number-position:left;
        margin-left:90.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l5
        {mso-list-id:-127;
        mso-list-type:simple;
        mso-list-template-ids:-1405587484;}
@list l5:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:72.0pt;
        mso-level-number-position:left;
        margin-left:72.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l6
        {mso-list-id:-126;
        mso-list-type:simple;
        mso-list-template-ids:828961842;}
@list l6:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:54.0pt;
        mso-level-number-position:left;
        margin-left:54.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l7
        {mso-list-id:-125;
        mso-list-type:simple;
        mso-list-template-ids:1053828088;}
@list l7:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:36.0pt;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l8
        {mso-list-id:-120;
        mso-list-type:simple;
        mso-list-template-ids:-2021464228;}
@list l8:level1
        {mso-level-tab-stop:18.0pt;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;}
@list l9
        {mso-list-id:-119;
        mso-list-type:simple;
        mso-list-template-ids:445916746;}
@list l9:level1
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:18.0pt;
        mso-level-number-position:left;
        margin-left:18.0pt;
        text-indent:-18.0pt;
        font-family:Symbol;}
ol
        {margin-bottom:0pt;}
ul
        {margin-bottom:0pt;}
-->
</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=blue>

<div class=Section1>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>My apologies, I forgot to clarify that the
XRI specifications require that when an XRI is transformed into an HTTP(S) URI (called
an HXRI in the spec), it must be transformation into URI-normal form as defined
in the XRI Syntax 2.0 spec [1]. That transformation (described earlier in this
thread) involves a simple mechanical transformation into IRI-normal form, then
following the IRI spec (RFC 3987) to apply the percent-encoding of Unicode
characters.<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>=Drummond <o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'>[1] <a
href="http://docs.oasis-open.org/xri/xri-syntax/2.0/specs/cs01/xri-syntax-V2.0-cs.html">http://docs.oasis-open.org/xri/xri-syntax/2.0/specs/cs01/xri-syntax-V2.0-cs.html</a>
<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=2 color=navy face=Arial><span style='font-size:
10.0pt;font-family:Arial;color:navy'><o:p>&nbsp;</o:p></span></font></p>

<div style='border:none;border-left:solid blue 1.5pt;padding:0pt 0pt 0pt 4.0pt'>

<div>

<div class=MsoNormal align=center style='text-align:center'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>

<hr size=2 width="100%" align=center tabindex=-1>

</span></font></div>

<p class=MsoNormal><b><font size=2 face=Tahoma><span style='font-size:10.0pt;
font-family:Tahoma;font-weight:bold'>From:</span></font></b><font size=2
face=Tahoma><span style='font-size:10.0pt;font-family:Tahoma'> Andrew Arnott
[mailto:andrewarnott@gmail.com] <br>
<b><span style='font-weight:bold'>Sent:</span></b> Thursday, July 10, 2008 1:02
PM<br>
<b><span style='font-weight:bold'>To:</span></b> Drummond Reed<br>
<b><span style='font-weight:bold'>Cc:</span></b> Peter Williams; Johnny Bufu;
OpenID List<br>
<b><span style='font-weight:bold'>Subject:</span></b> Re: [OpenID] Canonical
OpenID url form</span></font><o:p></o:p></p>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>If XRIs allow unicode
characters and URIs do not, then prefixing <a href="http://xri.net/">http://xri.net/</a>
in front of an XRI does <i><span style='font-style:italic'>not</span></i>
guarantee a proper URI.&nbsp; It merely makes it look like one.&nbsp; But if
foreign characters exist in the XRI, they must be properly % encoded for the
result to be a proper URI.<o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>On Thu, Jul 10, 2008 at 11:31 AM, Drummond Reed &lt;<a
href="mailto:drummond.reed@cordance.net">drummond.reed@cordance.net</a>&gt;
wrote:<o:p></o:p></span></font></p>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'>Martin's right, Peter -- XRI is one option for Unicode. But you can
also use<br>
an internationalized domain name<br>
(<a href="http://en.wikipedia.org/wiki/Internationalized_domain_name"
target="_blank">http://en.wikipedia.org/wiki/Internationalized_domain_name</a>)
in a regular<br>
URL. It uses Punycode (<a href="http://en.wikipedia.org/wiki/Punycode"
target="_blank">http://en.wikipedia.org/wiki/Punycode</a>).<br>
<br>
You can also turn an XRI into an URL by adding an XRI proxy resolver prefix<br>
(such as <a href="http://xri.net/" target="_blank">http://xri.net/</a> -- see
my sig below for an example). In that<br>
approach the proxy resolver prefix has nothing to do with the XRI itself, so<br>
there's no need to internationalize the domain name.<br>
<br>
=Drummond<br>
<a href="http://xri.net/=drummond.reed" target="_blank">http://xri.net/=drummond.reed</a><o:p></o:p></span></font></p>

<div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><br>
<br>
&gt; -----Original Message-----<br>
&gt; From: Peter Williams [mailto:<a href="mailto:pwilliams@rapattoni.com">pwilliams@rapattoni.com</a>]<br>
&gt; Sent: Wednesday, July 09, 2008 11:40 PM<br>
&gt; To: Drummond Reed; 'Johnny Bufu'; 'Andrew Arnott'<br>
&gt; Cc: 'OpenID List'<o:p></o:p></span></font></p>

</div>

<div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'><font size=3
face="Times New Roman"><span style='font-size:12.0pt'>&gt; Subject: RE:
[OpenID] Canonical OpenID url form<br>
&gt;<br>
&gt; So the short form of the story is: use xri for unicode (and then transform<br>
&gt; the xri into an https hxri).<br>
&gt;<br>
&gt; Its been a month since I studied xri (and thus have forgotten 80 percent<br>
&gt; of it). I recall there was a syntax to identify the address of the initial<br>
&gt; resolver. Is there a way tha this became the domain name componnt of the<br>
&gt; hxri<br>
&gt;<br>
&gt; -----Original Message-----<br>
&gt; From: Drummond Reed &lt;<a href="mailto:drummond.reed@cordance.net">drummond.reed@cordance.net</a>&gt;<br>
&gt; Sent: Wednesday, July 09, 2008 11:34 PM<br>
&gt; To: 'Johnny Bufu' &lt;<a href="mailto:johnny.bufu@gmail.com">johnny.bufu@gmail.com</a>&gt;;
'Andrew Arnott'<br>
&gt; &lt;<a href="mailto:andrewarnott@gmail.com">andrewarnott@gmail.com</a>&gt;<br>
&gt; Cc: 'OpenID List' &lt;<a href="mailto:general@openid.net">general@openid.net</a>&gt;<br>
&gt; Subject: Re: [OpenID] Canonical OpenID url form<br>
&gt;<br>
&gt;<br>
&gt; Also for the record, XRIs (which use the IRI character set) have a very<br>
&gt; simple defined transformation into IRIs. Thus when an XRI needs to be sent<br>
&gt; over-the-wire in an HTTP(S) URI, it must first be transformed into an IRI,<br>
&gt; then you follow the IRI spec (RFC 3987) to transform into a URI as Johnny<br>
&gt; describes below. Reverse the process to display back to the user.<br>
&gt;<br>
&gt; See<br>
&gt; <a
href="http://docs.oasis-open.org/xri/xri-syntax/2.0/specs/cs01/xri-syntax-V2.0-"
target="_blank">http://docs.oasis-open.org/xri/xri-syntax/2.0/specs/cs01/xri-syntax-V2.0-</a><br>
&gt; cs.<br>
&gt; html for all the gory details (and they are gory - Unicode is hard).<br>
&gt;<br>
&gt; =Drummond<br>
&gt;<br>
&gt; &gt; -----Original Message-----<br>
&gt; &gt; From: <a href="mailto:general-bounces@openid.net">general-bounces@openid.net</a>
[mailto:<a href="mailto:general-bounces@openid.net">general-bounces@openid.net</a>]
On<br>
&gt; &gt; Behalf Of Johnny Bufu<br>
&gt; &gt; Sent: Wednesday, July 09, 2008 10:52 PM<br>
&gt; &gt; To: Andrew Arnott<br>
&gt; &gt; Cc: OpenID List<br>
&gt; &gt; Subject: Re: [OpenID] Canonical OpenID url form<br>
&gt; &gt;<br>
&gt; &gt; For the record, since this continued in an offline thread:<br>
&gt; &gt;<br>
&gt; &gt; The issue is around the User-Supplied Identifiers. OpenID defines
them<br>
&gt; &gt; as a type of Identifiers, which in turn defined as HTTP(S) URI or
XRIs.<br>
&gt; &gt; HTTP(S) URI do not allow non-ASCII characters.<br>
&gt; &gt;<br>
&gt; &gt; So, out of scope of OpenID, parties accepting IRIs (other than XRIs)<br>
&gt; &gt; should follow the respective authoritative recommendations (i.e.<br>
&gt; &gt; RFC3987) before presenting such strings to the OpenID layer as HTTP<br>
&gt; &gt; URIs, and convert them back to IRI form later on when they need to be<br>
&gt; &gt; displayed back to the users.<br>
&gt; &gt;<br>
&gt; &gt; Johnny<br>
&gt; &gt;<br>
&gt; &gt; On 08/07/08 10:32 PM, Andrew Arnott wrote:<br>
&gt; &gt; &gt; Thanks, Johnny. &nbsp;I've had some conversations with a few
other people<br>
&gt; &gt; &gt; who draw the opposite conclusion and believe that the %AB%CD
notation<br>
&gt; &gt; &gt; is the canonical form.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; You make a good point about having to unescape the characters
from<br>
&gt; &gt; &gt; the URI just above the transport layer, but I believe you're
applying<br>
&gt; &gt; &gt; &nbsp;section 4.1 to the URL when it should only be applied to
the<br>
&gt; &gt; &gt; key/value pairs. &nbsp;The OpenID ClaimedIdentifier, which by
the spec is<br>
&gt; &gt; &gt; the last URL to respond without an HTTP redirect, cannot be in<br>
&gt; &gt; &gt; unicode by the URI specification because unicode characters are
not<br>
&gt; &gt; &gt; allowed, whether that is UTF8 or UTF16.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Name/value pairs passed as part of a querystring may (and as the<br>
&gt; &gt; &gt; section you quote requires) be encoded as UTF-8, but they are<br>
&gt; &gt; &gt; subsequently URI encoded as %AB%CD hex characters (thus doubly<br>
&gt; &gt; &gt; encoded) so they are actually no longer UTF-8 at the transport
layer.<br>
&gt; &gt; &gt; &nbsp;Since the OpenID URL, around which all the identity of
OpenID is<br>
&gt; &gt; &gt; focused (omiting XRIs which don't suffer from this problem) /is/
at<br>
&gt; &gt; &gt; the transport layer of the way the security requirements force
the<br>
&gt; &gt; &gt; claimed identifier to be discovered, is all about the transport<br>
&gt; &gt; &gt; layer, I believe it would be a mistake to add semantics on top
of<br>
&gt; &gt; &gt; that and call it canonical.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; What I also realized from some other conversations is that this<br>
&gt; &gt; &gt; doesn't really matter. &nbsp;As long as an OP or RP is consistent
within<br>
&gt; &gt; &gt; itself in storing and comparing Claimed Identifiers, whether it<br>
&gt; &gt; &gt; stores and compares %AB%CD or the unicode equivalent character
won't<br>
&gt; &gt; &gt; matter to anyone, since on the protocol/wire level it is always<br>
&gt; &gt; &gt; %AB%CD. &nbsp;However, I think unescaping the URL and getting
the original<br>
&gt; &gt; &gt; &nbsp;unicode characters back is very useful and should be done
for<br>
&gt; &gt; &gt; purposes of displaying to the user.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I think for the security and guaranteed identity of the
protocol,<br>
&gt; &gt; &gt; there is a meaningful side to this though. &nbsp;It has not got
to do with<br>
&gt; &gt; &gt; &nbsp;how the claimed identifier is stored, but rather how a
unicode<br>
&gt; &gt; &gt; string is escaped for URI transport. &nbsp;A given unicode
string may be<br>
&gt; &gt; &gt; represented by more than just one series of bytes. &nbsp;Unicode<br>
&gt; &gt; &gt; characters exist that in UTF-8 or UTF-16 have multiple byte
sequences<br>
&gt; &gt; &gt; &nbsp;/for the same character/. Therefore someone who is typing
in their<br>
&gt; &gt; &gt; OpenID url to a site using one method during one visit, and then<br>
&gt; &gt; &gt; types it in to the same site using a different method on a
subsequent<br>
&gt; &gt; &gt; &nbsp;visit, will only be identified by the RP as the same
visitor if<br>
&gt; &gt; &gt; OpenID requires that the RP transforms whatever unicode string
is<br>
&gt; &gt; &gt; given by the user to the canonical byte form as defined by the<br>
&gt; &gt; &gt; unicode standard before transit. &nbsp;For example, the letter
'Á' can be<br>
&gt; &gt; &gt; encoded as a single character or using composition by adding an<br>
&gt; &gt; &gt; accent to the A character. &nbsp;Both are legal, but the unicode
standard<br>
&gt; &gt; &gt; defines one as canonical (I think). &nbsp;But if a string
containing this<br>
&gt; &gt; &gt; character is not canonicalized first, then although the
character is<br>
&gt; &gt; &gt; equivalent to the user and to unicode, the encoded %AB%CD string
will<br>
&gt; &gt; &gt; be different, resulting in security problems for OpenID because<br>
&gt; &gt; &gt; people could overload a single Identifier just by using
different<br>
&gt; &gt; &gt; encodings at an OP, or fail to log into an RP depending on how
they<br>
&gt; &gt; &gt; craft their string. By the way, I say 'unicode' in the strict
sense,<br>
&gt; &gt; &gt; applying to UTF-8, UTF-16, etc. &nbsp;Unicode is commonly used
to refer to<br>
&gt; &gt; &gt; just UTF-16, but this problem applies to all unicode character
sizes.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; So I think OpenID should be more explicit about its unicode
support<br>
&gt; &gt; &gt; for Identifiers, including mandating a canonical Unicode form.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On Tue, Jul 8, 2008 at 9:41 PM, Johnny Bufu &lt;<a
href="mailto:johnny.bufu@gmail.com">johnny.bufu@gmail.com</a><br>
&gt; &gt; &gt; &lt;mailto:<a href="mailto:johnny.bufu@gmail.com">johnny.bufu@gmail.com</a>&gt;&gt;
wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; On 08/07/08 03:01 PM, Andrew Arnott wrote:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; What is the canonical form of an OpenID URL? One with the %AB%CD
hex<br>
&gt; &gt; &gt; encoding for unicode chars in the URL or with the actual unicode<br>
&gt; &gt; &gt; chars? For the purposes of displaying to the user and storing in
the<br>
&gt; &gt; &gt; RP's database.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The spec doesn't seem to have anything to say on this.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; I believe it does say:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 4.1. &nbsp;Protocol Messages The OpenID Authentication protocol
messages<br>
&gt; &gt; &gt; are mappings of plain-text keys to plain-text values. The keys
and<br>
&gt; &gt; &gt; values permit the full Unicode character set (UCS). When the
keys and<br>
&gt; &gt; &gt; &nbsp;values need to be converted to/from bytes, they MUST be
encoded<br>
&gt; &gt; &gt; using UTF-8 [RFC3629].<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; <a
href="http://openid.net/specs/openid-authentication-2_0.html#anchor4"
target="_blank">http://openid.net/specs/openid-authentication-2_0.html#anchor4</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The reason I think it's not a simple automatic answer is the
unicode<br>
&gt; &gt; &gt; chars may be what the user typed in and what exists on the
server,<br>
&gt; &gt; &gt; but in transit, these characters are translated to %AB%CD in
order to<br>
&gt; &gt; &gt; &nbsp;be validly escaped URI strings.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; The receiving party must decode them to the original form when
they<br>
&gt; &gt; &gt; are extracted from the transport layer.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; So one could argue that the unicode characters are never part of
the<br>
&gt; &gt; &gt; protocol<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; One would then be ignoring the parts of the protocol that do not
deal<br>
&gt; &gt; &gt; &nbsp;with the transport layer directly.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Johnny<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; !DSPAM:139,48744d86221113907413095!<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; general mailing list<br>
&gt; &gt; <a href="mailto:general@openid.net">general@openid.net</a><br>
&gt; &gt; <a href="http://openid.net/mailman/listinfo/general" target="_blank">http://openid.net/mailman/listinfo/general</a><br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; general mailing list<br>
&gt; <a href="mailto:general@openid.net">general@openid.net</a><br>
&gt; <a href="http://openid.net/mailman/listinfo/general" target="_blank">http://openid.net/mailman/listinfo/general</a><o:p></o:p></span></font></p>

</div>

</div>

</div>

<p class=MsoNormal><font size=3 face="Times New Roman"><span style='font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</div>

</body>

</html>