W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
java.lang.Object
|---java.net.IDN
public final class IDN
extends Object
提供在普通 Unicode 表示和 ASCII 兼容編碼 (ACE) 表示之間轉(zhuǎn)換國(guó)際化域名 (IDN) 的方法。 國(guó)際化域名可以使用整個(gè) Unicode 范圍內(nèi)的字符,而傳統(tǒng)域名僅限于 ASCII 字符。 ACE 是一種僅使用 ASCII 字符的 Unicode 字符串編碼,可以與只理解傳統(tǒng)域名的軟件(例如域名系統(tǒng))一起使用。
國(guó)際化域名在 RFC 3490 中定義。RFC 3490 定義了兩種操作:ToASCII 和 ToUnicode。 這兩個(gè)操作使用 Nameprep 算法,它是 Stringprep 的一個(gè)配置文件,以及 Punycode 算法來(lái)來(lái)回轉(zhuǎn)換域名字符串。
上述轉(zhuǎn)換過(guò)程的行為可以通過(guò)各種標(biāo)志進(jìn)行調(diào)整:
這些標(biāo)志可以邏輯或在一起。
安全考慮對(duì)于國(guó)際化域名支持很重要。 例如,英文域名可能是同形異義詞——通過(guò)替換非拉丁字母而惡意拼寫錯(cuò)誤。 Unicode 技術(shù)報(bào)告 #36 討論了 IDN 支持的安全問(wèn)題以及可能的解決方案。 應(yīng)用程序有責(zé)任在使用國(guó)際域名時(shí)采取足夠的安全措施。
修飾符和類型 | 字段 | 描述 |
---|---|---|
static int | ALLOW_UNASSIGNED | 允許處理未分配代碼點(diǎn)的標(biāo)志 |
static int | USE_STD3_ASCII_RULES | 標(biāo)記以打開對(duì) STD-3 ASCII 規(guī)則的檢查 |
修飾符和類型 | 方法 | 描述 |
---|---|---|
static String | toASCII(String input) | 將字符串從 Unicode 轉(zhuǎn)換為 ASCII 兼容編碼 (ACE),由 RFC 3490 的 ToASCII 操作定義。 |
static String | toASCII(String input, int flag) | 將字符串從 Unicode 轉(zhuǎn)換為 ASCII 兼容編碼 (ACE),由 RFC 3490 的 ToASCII 操作定義。 |
static String | toUnicode(String input) | 將字符串從 ASCII 兼容編碼 (ACE) 轉(zhuǎn)換為 Unicode,由 RFC 3490 的 ToUnicode 操作定義。 |
static String | toUnicode(String input, int flag) | 將字符串從 ASCII 兼容編碼 (ACE) 轉(zhuǎn)換為 Unicode,由 RFC 3490 的 ToUnicode 操作定義。 |
從類 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
public static final int ALLOW_UNASSIGNED
允許處理未分配代碼點(diǎn)的標(biāo)志
public static final int USE_STD3_ASCII_RULES
標(biāo)記以打開對(duì) STD-3 ASCII 規(guī)則的檢查
public static String toASCII(String input, int flag)
將字符串從 Unicode 轉(zhuǎn)換為 ASCII 兼容編碼 (ACE),由 RFC 3490 的 ToASCII 操作定義。
ToASCII 操作可能會(huì)失敗。 如果任何步驟失敗,ToASCII 就會(huì)失敗。 如果 ToASCII 操作失敗,將拋出 IllegalArgumentException。 在這種情況下,不應(yīng)在國(guó)際化域名中使用輸入字符串。
標(biāo)簽是域名的獨(dú)立部分。 RFC 3490 中定義的原始 ToASCII 操作僅對(duì)單個(gè)標(biāo)簽進(jìn)行操作。 該方法可以處理標(biāo)簽和整個(gè)域名,假設(shè)域名中的標(biāo)簽總是用點(diǎn)分隔。 以下字符被識(shí)別為點(diǎn):\u002E(句號(hào))、\u3002(表意句號(hào))、\uFF0E(全角句號(hào))和\uFF61(半角表意句號(hào))。 如果將點(diǎn)用作標(biāo)簽分隔符,則此方法還將在輸出翻譯字符串中將它們?nèi)扛臑?\u002E(句號(hào))。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
input | 要處理的字符串 |
flag | 進(jìn)程標(biāo)志; 可以是 0 或可能標(biāo)志的任何邏輯或 |
返回:
翻譯后的字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果輸入字符串不符合 RFC 3490 規(guī)范 |
public static String toASCII(String input)
將字符串從 Unicode 轉(zhuǎn)換為 ASCII 兼容編碼 (ACE),由 RFC 3490 的 ToASCII 操作定義。
這種方便的方法就像通過(guò)調(diào)用兩個(gè)參數(shù)對(duì)應(yīng)物一樣工作,如下所示:
toASCII(input, 0);
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
input | 要處理的字符串 |
返回:
翻譯后的字符串
Throws:
Throw名稱 | Throw描述 |
---|---|
IllegalArgumentException | 如果輸入字符串不符合 RFC 3490 規(guī)范 |
public static String toUnicode(String input, int flag)
將字符串從 ASCII 兼容編碼 (ACE) 轉(zhuǎn)換為 Unicode,由 RFC 3490 的 ToUnicode 操作定義。
ToUnicode 永遠(yuǎn)不會(huì)失敗。 如果出現(xiàn)任何錯(cuò)誤,輸入字符串將不加修改地返回。
標(biāo)簽是域名的獨(dú)立部分。 RFC 3490 中定義的原始 ToUnicode 操作僅對(duì)單個(gè)標(biāo)簽進(jìn)行操作。 該方法可以處理標(biāo)簽和整個(gè)域名,假設(shè)域名中的標(biāo)簽總是用點(diǎn)分隔。 以下字符被識(shí)別為點(diǎn):\u002E(句號(hào))、\u3002(表意句號(hào))、\uFF0E(全角句號(hào))和\uFF61(半角表意句號(hào))。
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
input | 要處理的字符串 |
flag | 進(jìn)程標(biāo)志; 可以是 0 或可能標(biāo)志的任何邏輯或 |
返回:
翻譯后的字符串
public static String toUnicode(String input)
將字符串從 ASCII 兼容編碼 (ACE) 轉(zhuǎn)換為 Unicode,由 RFC 3490 的 ToUnicode 操作定義。
這種方便的方法就像通過(guò)調(diào)用兩個(gè)參數(shù)對(duì)應(yīng)物一樣工作,如下所示:
toUnicode(input, 0);
參數(shù):
參數(shù)名稱 | 參數(shù)描述 |
---|---|
input | 要處理的字符串 |
返回:
翻譯后的字符串
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: