树叶云鸿蒙OS教程:鸿蒙OS IDN

IDN

java.lang.Object

|—java.net.IDN

public final class IDN
extends Object

提供在普通 Unicode 表示和 ASCII 兼容编码 (ACE) 表示之间转换国际化域名 (IDN) 的方法。 国际化域名可以使用整个 Unicode 范围内的字符,而传统域名仅限于 ASCII 字符。 ACE 是一种仅使用 ASCII 字符的 Unicode 字符串编码,可以与只理解传统域名的软件(例如域名系统)一起使用。

国际化域名在 RFC 3490 中定义。RFC 3490 定义了两种操作:ToASCII 和 ToUnicode。 这两个操作使用 Nameprep 算法,它是 Stringprep 的一个配置文件,以及 Punycode 算法来来回转换域名字符串。

上述转换过程的行为可以通过各种标志进行调整:

  • 如果使用 ALLOW_UNASSIGNED 标志,则要转换的域名字符串可以包含在 Unicode 3.2 中未分配的代码点,这是 IDN 转换所基于的 Unicode 版本。 如果未使用该标志,则将此类未分配代码点的存在视为错误。
  • 如果使用 USE_STD3_ASCII_RULES 标志,则对照 RFC 1122 和 RFC 1123 检查 ASCII 字符串。如果它们不符合要求,则会出错。

这些标志可以逻辑或在一起。

安全考虑对于国际化域名支持很重要。 例如,英文域名可能是同形异义词——通过替换非拉丁字母而恶意拼写错误。 Unicode 技术报告 #36 讨论了 IDN 支持的安全问题以及可能的解决方案。 应用程序有责任在使用国际域名时采取足够的安全措施。

字段摘要

修饰符和类型字段描述
static intALLOW_UNASSIGNED允许处理未分配代码点的标志
static intUSE_STD3_ASCII_RULES标记以打开对 STD-3 ASCII 规则的检查

方法总结

修饰符和类型方法描述
static StringtoASCII(String input)将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。
static StringtoASCII(String input, int flag)将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。
static StringtoUnicode(String input)将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。
static StringtoUnicode(String input, int flag)将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段详细信息

ALLOW_UNASSIGNED

public static final int ALLOW_UNASSIGNED

允许处理未分配代码点的标志

USE_STD3_ASCII_RULES

public static final int USE_STD3_ASCII_RULES

标记以打开对 STD-3 ASCII 规则的检查

方法详情

toASCII

public static String toASCII(String input, int flag)

将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。

ToASCII 操作可能会失败。 如果任何步骤失败,ToASCII 就会失败。 如果 ToASCII 操作失败,将抛出 IllegalArgumentException。 在这种情况下,不应在国际化域名中使用输入字符串。

标签是域名的独立部分。 RFC 3490 中定义的原始 ToASCII 操作仅对单个标签进行操作。 该方法可以处理标签和整个域名,假设域名中的标签总是用点分隔。 以下字符被识别为点:\u002E(句号)、\u3002(表意句号)、\uFF0E(全角句号)和\uFF61(半角表意句号)。 如果将点用作标签分隔符,则此方法还将在输出翻译字符串中将它们全部更改为 \u002E(句号)。

参数:

参数名称参数描述
input要处理的字符串
flag进程标志; 可以是 0 或可能标志的任何逻辑或

返回:

翻译后的字符串

Throws:

Throw名称Throw描述
IllegalArgumentException如果输入字符串不符合 RFC 3490 规范

toASCII

public static String toASCII(String input)

将字符串从 Unicode 转换为 ASCII 兼容编码 (ACE),由 RFC 3490 的 ToASCII 操作定义。

这种方便的方法就像通过调用两个参数对应物一样工作,如下所示:

toASCII(input, 0);

参数:

参数名称参数描述
input要处理的字符串

返回:

翻译后的字符串

Throws:

Throw名称Throw描述
IllegalArgumentException如果输入字符串不符合 RFC 3490 规范

toUnicode

public static String toUnicode(String input, int flag)

将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。

ToUnicode 永远不会失败。 如果出现任何错误,输入字符串将不加修改地返回。

标签是域名的独立部分。 RFC 3490 中定义的原始 ToUnicode 操作仅对单个标签进行操作。 该方法可以处理标签和整个域名,假设域名中的标签总是用点分隔。 以下字符被识别为点:\u002E(句号)、\u3002(表意句号)、\uFF0E(全角句号)和\uFF61(半角表意句号)。

参数:

参数名称参数描述
input要处理的字符串
flag进程标志; 可以是 0 或可能标志的任何逻辑或

返回:

翻译后的字符串

toUnicode

public static String toUnicode(String input)

将字符串从 ASCII 兼容编码 (ACE) 转换为 Unicode,由 RFC 3490 的 ToUnicode 操作定义。

这种方便的方法就像通过调用两个参数对应物一样工作,如下所示:

toUnicode(input, 0);

参数:

参数名称参数描述
input要处理的字符串

返回:

翻译后的字符串

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/191530.html<

(0)
管理的头像管理
上一篇2025-04-01 04:18
下一篇 2025-04-01 04:20

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注