文档

Java™教程
隐藏目录
国际化域名
路径:国际化
课程:网络资源的国际化

国际化域名

在历史上,互联网域名只包含ASCII字符。随着互联网的普及和全球范围内的应用,支持域名国际化变得必要,特别是支持包含Unicode字符的域名。

国际化域名应用(IDNA)机制被采用为将Unicode字符转换为标准ASCII域名的标准,从而保持域名系统的稳定性。该系统执行查找服务,将用户友好的名称转换为网络地址。

国际化域名的示例:

如果您点击这些链接,您将看到地址栏中的Unicode域名被替换为ASCII字符串。

要在您的应用程序中实现类似的功能,java.net.IDN类提供了在ASCII和非ASCII格式之间转换域名的方法。

方法 目的
toASCII(String)
toASCII(String, flag)
在将IDN发送到域名解析系统或将IDN写入期望ASCII字符的文件(如DNS主文件)之前使用,如果输入字符串不符合RFC 3490,这些方法会抛出IllegalArgumentException异常。
toUnicode(String)
toUnicode(String, flag)
在向用户显示名称时使用,例如从DNS区域获取的名称。该方法将字符串从ASCII兼容编码(ACE)转换为Unicode代码点。此方法永远不会失败;如果发生错误,输入字符串保持不变并返回未修改的状态。

可选的flag参数指定转换过程的行为。 ALLOW_UNASSIGNED标志允许包括Unicode 3.2中未分配的代码点。 USE_STD3_ASCII_RULES标志确保遵守STD-3 ASCII规则。您可以单独使用这些标志或逻辑上OR在一起。如果不需要任何标志,请使用单参数版本的方法。


上一页: 网络资源的国际化
下一页: 国际化的服务提供商