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)。
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
|
int CHECK_BIDI
IDNA选项来检查输入是否符合BiDi规则。 用于静态工人和工厂方法。
该选项被IDNA2003实施忽略。 (IDNA2003总是执行BiDi检查。)
常量值:4(0x00000004)
int CHECK_CONTEXTJ
IDNA选项来检查输入是否符合CONTEXTJ规则。 用于静态工人和工厂方法。
该选项被IDNA2003实施忽略。 (CONTEXTJ检查在IDNA2008中是新的。)
常量值:8(0x00000008)
int CHECK_CONTEXTO
IDNA选项来检查输入是否符合CONTEXTO规则。 用于静态工人和工厂方法。
该选项被IDNA2003实施忽略。 (CONTEXTO检查在IDNA2008中是新的。)
这是供注册管理机构使用IDNA2008一致性的。 UTS#46不要求CONTEXTO检查。
常量值:64(0x00000040)
int NONTRANSITIONAL_TO_ASCII
用于ToASCII()中的非过渡处理的IDNA选项。 用于静态工人和工厂方法。
默认情况下,ToASCII()使用过渡处理。
该选项被IDNA2003实施忽略。 (这只与新版IDNA实现与IDNA2003的兼容性有关。)
常量值:16(0x00000010)
int NONTRANSITIONAL_TO_UNICODE
用于ToUnicode()中的非过渡处理的IDNA选项。 用于静态工人和工厂方法。
默认情况下,ToUnicode()使用过渡处理。
该选项被IDNA2003实施忽略。 (这只与新版IDNA实现与IDNA2003的兼容性有关。)
常量值:32(0x00000020)
int USE_STD3_RULES
可以选择检查输入是否符合STD3 ASCII规则,例如将标签限制为LDH字符(ASCII字母,数字和连字符号)。 用于静态工人和工厂方法。
常量值:2(0x00000002)
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 |
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 |
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 |
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 |
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 |