Most visited

Recently visited

Added in API level 24

IDNA

public abstract class IDNA
extends Object

java.lang.Object
   ↳ android.icu.text.IDNA


IDNA处理的抽象基类。 请参阅http://www.unicode.org/reports/tr46/和http://www.ietf.org/rfc/rfc3490.txt

IDNA类不适用于公共子类。

非静态方法实现了UTS#46和IDNA2008。 IDNA2008根据UTS#46实现,请参阅getUTS46Instance()。

IDNA2003已过时。 静态方法实现IDNA2003。 他们都被弃用。

IDNA2003 API概述:

静态IDNA API方法实现了IDNA RFC中定义的IDNA协议。 该草案定义了2个操作:ToASCII和ToUnicode。 包含非ASCII代码点的域标签在传递给解析器库之前需要通过ToASCII操作进行处理。 在向用户显示域名之前,需要通过ToUnicode操作处理从解析器库获取的域名。 IDNA要求实现处理输入字符串Nameprep ,这是Stringprep的配置文件,然后是Punycode IDNA的实现必须完全实现Nameprep和Punycode; Nameprep和Punycode都不是可选的。 ToASCII和ToUnicode操作的输入和输出是Unicode,并被设计为可链接的,即对输入字符串多次应用ToASCII或ToUnicode操作将产生与应用一次操作相同的结果。 ToUnicode(ToUnicode(ToUnicode ...(ToUnicode(string))))== ToUnicode(string)ToASCII(ToASCII(ToASCII ...(ToASCII(string)))== ToASCII(string)。

Summary

Nested classes

枚举 IDNA.Error

IDNA错误位设置值。

class IDNA.Info

IDNA处理错误的输出容器。

Constants

int CHECK_BIDI

IDNA选项来检查输入是否符合BiDi规则。

int CHECK_CONTEXTJ

IDNA选项来检查输入是否符合CONTEXTJ规则。

int CHECK_CONTEXTO

IDNA选项来检查输入是否符合CONTEXTO规则。

int DEFAULT

默认选项值:没有设置其他选项。

int NONTRANSITIONAL_TO_ASCII

用于ToASCII()中的非过渡处理的IDNA选项。

int NONTRANSITIONAL_TO_UNICODE

用于ToUnicode()中的非过渡处理的IDNA选项。

int USE_STD3_RULES

可以选择检查输入是否符合STD3 ASCII规则,例如将标签限制为LDH字符(ASCII字母,数字和连字符号)。

Public methods

static IDNA getUTS46Instance(int options)

返回一个实现UTS#46的IDNA实例。

abstract StringBuilder labelToASCII(CharSequence label, StringBuilder dest, IDNA.Info info)

将单个域名标签转换为ASCII形式以进行DNS查找。

abstract StringBuilder labelToUnicode(CharSequence label, StringBuilder dest, IDNA.Info info)

将单个域名标签转换为Unicode格式,以供人类阅读。

abstract StringBuilder nameToASCII(CharSequence name, StringBuilder dest, IDNA.Info info)

将整个域名转换为ASCII形式以进行DNS查找。

abstract StringBuilder nameToUnicode(CharSequence name, StringBuilder dest, IDNA.Info info)

将整个域名转换为其Unicode格式以供人类阅读。

Inherited methods

From class java.lang.Object

Constants

CHECK_BIDI

Added in API level 24
int CHECK_BIDI

IDNA选项来检查输入是否符合BiDi规则。 用于静态工人和工厂方法。

该选项被IDNA2003实施忽略。 (IDNA2003总是执行BiDi检查。)

常量值:4(0x00000004)

CHECK_CONTEXTJ

Added in API level 24
int CHECK_CONTEXTJ

IDNA选项来检查输入是否符合CONTEXTJ规则。 用于静态工人和工厂方法。

该选项被IDNA2003实施忽略。 (CONTEXTJ检查在IDNA2008中是新的。)

常量值:8(0x00000008)

CHECK_CONTEXTO

Added in API level 24
int CHECK_CONTEXTO

IDNA选项来检查输入是否符合CONTEXTO规则。 用于静态工人和工厂方法。

该选项被IDNA2003实施忽略。 (CONTEXTO检查在IDNA2008中是新的。)

这是供注册管理机构使用IDNA2008一致性的。 UTS#46不要求CONTEXTO检查。

常量值:64(0x00000040)

DEFAULT

Added in API level 24
int DEFAULT

默认选项值:没有设置其他选项。 用于静态工人和工厂方法。

常量值:0(0x00000000)

NONTRANSITIONAL_TO_ASCII

Added in API level 24
int NONTRANSITIONAL_TO_ASCII

用于ToASCII()中的非过渡处理的IDNA选项。 用于静态工人和工厂方法。

默认情况下,ToASCII()使用过渡处理。

该选项被IDNA2003实施忽略。 (这只与新版IDNA实现与IDNA2003的兼容性有关。)

常量值:16(0x00000010)

NONTRANSITIONAL_TO_UNICODE

Added in API level 24
int NONTRANSITIONAL_TO_UNICODE

用于ToUnicode()中的非过渡处理的IDNA选项。 用于静态工人和工厂方法。

默认情况下,ToUnicode()使用过渡处理。

该选项被IDNA2003实施忽略。 (这只与新版IDNA实现与IDNA2003的兼容性有关。)

常量值:32(0x00000020)

USE_STD3_RULES

Added in API level 24
int USE_STD3_RULES

可以选择检查输入是否符合STD3 ASCII规则,例如将标签限制为LDH字符(ASCII字母,数字和连字符号)。 用于静态工人和工厂方法。

常量值:2(0x00000002)

Public methods

getUTS46Instance

Added in API level 24
IDNA getUTS46Instance (int options)

返回一个实现UTS#46的IDNA实例。 返回调用者拥有的不可修改的实例。 将其缓存为多个操作,并在完成后将其删除。 该实例是线程安全的,也就是说,它可以同时使用。

UTS#46定义了Unicode IDNA兼容性处理,更新为最新版本的Unicode,并与IDNA2003和IDNA2008兼容。

除非使用NONTRANSITIONAL_TO_ASCII或NONTRANSITIONAL_TO_UNICODE,否则工作人员功能使用过渡处理,包括偏差映射,在这种情况下,偏差字符不加改变地通过。

不允许的字符被映射到U + FFFD。

UTS#46实例的操作不支持ALLOW_UNASSIGNED选项。

默认情况下,UTS#46实现允许所有ASCII字符(如有效或映射)。 使用USE_STD3_RULES选项时,不允许使用字母,数字,连字符(LDH)和点/句号之外的ASCII字符,并将其映射到U + FFFD。

Parameters
options int: Bit set to modify the processing and error checking.
Returns
IDNA the UTS #46 IDNA instance, if successful

labelToASCII

Added in API level 24
StringBuilder labelToASCII (CharSequence label, 
                StringBuilder dest, 
                IDNA.Info info)

将单个域名标签转换为ASCII形式以进行DNS查找。 如果任何处理步骤失败,则info.hasErrors()将为true,结果可能不是ASCII字符串。 标签可能会根据错误类型进行修改。 具有严重错误的标签将留在(或变成)其Unicode形式。

Parameters
label CharSequence: Input domain name label
dest StringBuilder: Destination string object
info IDNA.Info: Output container of IDNA processing details.
Returns
StringBuilder dest

labelToUnicode

Added in API level 24
StringBuilder labelToUnicode (CharSequence label, 
                StringBuilder dest, 
                IDNA.Info info)

将单个域名标签转换为Unicode格式,以供人类阅读。 如果任何处理步骤失败,则info.hasErrors()将为true。 标签可能会根据错误类型进行修改。

Parameters
label CharSequence: Input domain name label
dest StringBuilder: Destination string object
info IDNA.Info: Output container of IDNA processing details.
Returns
StringBuilder dest

nameToASCII

Added in API level 24
StringBuilder nameToASCII (CharSequence name, 
                StringBuilder dest, 
                IDNA.Info info)

将整个域名转换为ASCII形式以进行DNS查找。 如果任何处理步骤失败,则info.hasErrors()将为true,结果可能不是ASCII字符串。 域名可能会根据错误类型进行修改。 具有严重错误的标签将留在(或变成)其Unicode形式。

Parameters
name CharSequence: Input domain name
dest StringBuilder: Destination string object
info IDNA.Info: Output container of IDNA processing details.
Returns
StringBuilder dest

nameToUnicode

Added in API level 24
StringBuilder nameToUnicode (CharSequence name, 
                StringBuilder dest, 
                IDNA.Info info)

将整个域名转换为其Unicode格式以供人类阅读。 如果任何处理步骤失败,则info.hasErrors()将为true。 域名可能会根据错误类型进行修改。

Parameters
name CharSequence: Input domain name
dest StringBuilder: Destination string object
info IDNA.Info: Output container of IDNA processing details.
Returns
StringBuilder dest

Hooray!