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