Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo IdnMapping.GetAscii (String)

 

Data di pubblicazione: ottobre 2016

Codifica una stringa di etichette del nome di dominio che sono costituiti da caratteri Unicode in una stringa di caratteri Unicode visualizzabili compresi nell'intervallo di caratteri US-ASCII. La stringa viene formattata in base allo standard IDNA.

Spazio dei nomi:   System.Globalization
Assembly:  mscorlib (in mscorlib.dll)

public string GetAscii(
	string unicode
)

Parametri

unicode
Type: System.String

Stringa da convertire, costituito da uno o più etichette del nome di dominio delimitate da separatori di etichetta.

Valore restituito

Type: System.String

L'equivalente della stringa specificata per il unicode parametro, costituito da caratteri Unicode visualizzabili in US-ASCII (da U + 0020 a U + 007E) intervallo di caratteri e formattati in base allo standard IDNA.

Exception Condition
ArgumentNullException

unicode è null.

ArgumentException

unicode è valido in base il AllowUnassigned e UseStd3AsciiRules proprietà e lo standard IDNA.

Il unicode parametro specifica una stringa di uno o più etichette che sono costituiti da caratteri Unicode validi. Le etichette sono separate da separatori di etichetta. Il unicode parametro non può iniziare con un separatore di etichetta, ma può includere e facoltativamente terminare con un separatore. I separatori di etichetta FULL STOP (punto, U + 002E), IDEOGRAFICI FULL STOP (U + 3002), pieno (U + FF0E) e arresto totale IDEOGRAFICI angolare (U + FF61). Ad esempio, il nome di dominio "www.adatum.com" è costituito dalle etichette, "www", "adatum" e "com", separati da punti.

Un'etichetta non può contenere i caratteri seguenti:

Il GetAscii metodo converte tutti i separatori di etichetta in FULL STOP (punto, U + 002E).

Se unicode non contenga caratteri US-ASCII di fuori intervallo di caratteri e caratteri all'interno dell'intervallo di caratteri US-ASCII non sono consentiti, il metodo restituisce unicode invariato.

Note per i chiamanti:

Nel .NET Framework 4.5, IdnMapping classe supporta diverse versioni dello standard IDNA, a seconda del sistema operativo in uso:

Vedere Unicode Technical Standard #46: IDNA Compatibility Processing per le differenze nel modo di gestire questi standard specifici set di caratteri.

Nell'esempio seguente viene utilizzata la GetAscii(String) metodo per convertire una matrice di IDN nomi di dominio Punycode, ovvero un equivalente codificato costituito da caratteri nell'intervallo di caratteri US-ASCII. Il GetUnicode(String) metodo quindi converte il nome di dominio Punycode al nome di dominio originale, ma sostituisce separatori di etichetta originali con il separatore di etichetta standard.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] names = { "bücher.com", "мойдомен.рф", "παράδειγμα.δοκιμή",
                         "mycharity\u3002org",
                         "prose\u0000ware.com", "proseware..com", "a.org", 
                         "my_company.com" };
      IdnMapping idn = new IdnMapping();

      foreach (var name in names) {
         try {
            string punyCode = idn.GetAscii(name);
            string name2 = idn.GetUnicode(punyCode);
            Console.WriteLine("{0} --> {1} --> {2}", name, punyCode, name2); 
            Console.WriteLine("Original: {0}", ShowCodePoints(name));
            Console.WriteLine("Restored: {0}", ShowCodePoints(name2));
         }   
         catch (ArgumentException) { 
            Console.WriteLine("{0} is not a valid domain name.", name);
         }
         Console.WriteLine();
      }   
   }

   private static string ShowCodePoints(string str1) 
   {
      string output = "";
      foreach (var ch in str1)
         output += String.Format("U+{0} ", Convert.ToUInt16(ch).ToString("X4"));

      return output;
   }
}
// The example displays the following output:
//    bücher.com --> xn--bcher-kva.com --> bücher.com
//    Original: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
//    Restored: U+0062 U+00FC U+0063 U+0068 U+0065 U+0072 U+002E U+0063 U+006F U+006D
//    
//    мойдомен.рф --> xn--d1acklchcc.xn--p1ai --> мойдомен.рф
//    Original: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
//    Restored: U+043C U+043E U+0439 U+0434 U+043E U+043C U+0435 U+043D U+002E U+0440 U+0444
//    
//    παράδειγμα.δοκιμή --> xn--hxajbheg2az3al.xn--jxalpdlp --> παράδειγμα.δοκιμή
//    Original: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
//    Restored: U+03C0 U+03B1 U+03C1 U+03AC U+03B4 U+03B5 U+03B9 U+03B3 U+03BC U+03B1 U+002E U+03B4 U+03BF U+03BA U+03B9 U+03BC U+03AE
//    
//    mycharity。org --> mycharity.org --> mycharity.org
//    Original: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+3002 U+006F U+0072 U+0067
//    Restored: U+006D U+0079 U+0063 U+0068 U+0061 U+0072 U+0069 U+0074 U+0079 U+002E U+006F U+0072 U+0067
//    
//    prose ware.com is not a valid domain name.
//    
//    proseware..com is not a valid domain name.
//    
//    a.org --> a.org --> a.org
//    Original: U+0061 U+002E U+006F U+0072 U+0067
//    Restored: U+0061 U+002E U+006F U+0072 U+0067
//    
//    my_company.com --> my_company.com --> my_company.com
//    Original: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D
//    Restored: U+006D U+0079 U+005F U+0063 U+006F U+006D U+0070 U+0061 U+006E U+0079 U+002E U+0063 U+006F U+006D

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 2.0
Torna all'inizio
Mostra: