我已向RFC 6122中指定的 XMPP 客户端添加了国际域名支持。在 RFC 中它指出:
尽管 XMPP 应用程序不会通过网络传递 ToASCII 操作的输出(称为“ACE 标签”),但必须可以应用该操作而不会失败到每个国际化标签。
但是,对于我可用于测试的域(运行 Prosody 0.9.4;致力于从其他人那里获得有关 Ejabberd 如何处理此问题的反馈),在 XMPP 节的“to”字段中发送 Unicode 名称会导致他们立即返回XMPP 错误节并终止流。如果我toASCII
在发送节之前应用该操作,则连接成功,我可以开始与服务器进行身份验证。
所以发送:
<somestanza to="éxample.net"/>
会导致错误,而:
<somestanza to="xn--xample-9ua.net"/>
工作正常。
像这样发送域的 ASCII 表示(ACE 标签)是否正确?如果是这样,当规范说“XMPP 应用程序不通过网络传输 ToASCII 操作的输出......”时,规范是什么意思?如果不是,我如何确保与行为不端的服务器兼容?