Partager via


IdnMapping.GetUnicode Méthode

Définition

Décode une ou plusieurs étiquettes de noms de domaine encodées selon la norme IDNA dans une chaîne de caractères Unicode.

Surcharges

GetUnicode(String)

Décode une chaîne d'une ou de plusieurs étiquettes de noms de domaine encodées selon la norme IDNA dans une chaîne de caractères Unicode.

GetUnicode(String, Int32)

Décode une sous-chaîne d'une ou de plusieurs étiquettes de noms de domaine encodées selon la norme IDNA dans une chaîne de caractères Unicode.

GetUnicode(String, Int32, Int32)

Décode une sous-chaîne d'une longueur spécifiée qui contient une ou plusieurs étiquettes de nom de domaine, encodées selon la norme IDNA en une chaîne de caractères Unicode.

GetUnicode(String)

Source:
IdnMapping.cs
Source:
IdnMapping.cs
Source:
IdnMapping.cs

Décode une chaîne d'une ou de plusieurs étiquettes de noms de domaine encodées selon la norme IDNA dans une chaîne de caractères Unicode.

public:
 System::String ^ GetUnicode(System::String ^ ascii);
public string GetUnicode (string ascii);
member this.GetUnicode : string -> string
Public Function GetUnicode (ascii As String) As String

Paramètres

ascii
String

Chaîne à décoder, qui se compose d'une ou plusieurs étiquettes dans la plage de caractères US-ASCII (U+0020 à U+007E), encodées selon la norme IDNA.

Retours

Équivalent Unicode de la sous-chaîne IDNA spécifiée par le paramètre ascii.

Exceptions

ascii a la valeur null.

ascii est non valide selon les propriétés AllowUnassigned et UseStd3AsciiRules, ainsi que la norme IDNA.

Exemples

L’exemple suivant utilise la GetAscii(String) méthode pour convertir un tableau de noms de domaine internationalisés en Punycode. La GetUnicode(String) méthode convertit ensuite le nom de domaine Punycode en nom de domaine d’origine, mais remplace les séparateurs d’étiquettes d’origine par le séparateur d’étiquette 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 += $"U+{(ushort)ch: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
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim names() As String = { "bücher.com", "мойдомен.рф", "παράδειγμα.δοκιμή",
                                "mycharity" + ChrW(&h3002) + "org",
                                "prose" + ChrW(0) + "ware.com", "proseware..com", "a.org", 
                                "my_company.com" }
      Dim idn As New IdnMapping()
      
      For Each name In names
         Try
            Dim punyCode As String = idn.GetAscii(name)
            Dim name2 As String = idn.GetUnicode(punyCode)
            Console.WriteLine("{0} --> {1} --> {2}", name, punyCode, name2) 
            Console.WriteLine("Original: {0}", ShowCodePoints(name))
            Console.WriteLine("Restored: {0}", ShowCodePoints(name2))
         Catch e As ArgumentException 
            Console.WriteLine("{0} is not a valid domain name.", name)
         End Try
         Console.WriteLine()
      Next   
   End Sub
   
   Private Function ShowCodePoints(str1 As String) As String
      Dim output As String = ""
      For Each ch In str1
         output += String.Format("U+{0} ", Convert.ToUInt16(ch).ToString("X4"))
      Next
      Return output
   End Function
End Module
' 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

Remarques

Pour plus d’informations sur les noms de domaine, les étiquettes et les séparateurs d’étiquettes, consultez les remarques relatives à la IdnMapping.GetAscii(String, Int32, Int32) méthode .

S’applique à

GetUnicode(String, Int32)

Source:
IdnMapping.cs
Source:
IdnMapping.cs
Source:
IdnMapping.cs

Décode une sous-chaîne d'une ou de plusieurs étiquettes de noms de domaine encodées selon la norme IDNA dans une chaîne de caractères Unicode.

public:
 System::String ^ GetUnicode(System::String ^ ascii, int index);
public string GetUnicode (string ascii, int index);
member this.GetUnicode : string * int -> string
Public Function GetUnicode (ascii As String, index As Integer) As String

Paramètres

ascii
String

Chaîne à décoder, qui se compose d'une ou plusieurs étiquettes dans la plage de caractères US-ASCII (U+0020 à U+007E), encodées selon la norme IDNA.

index
Int32

Décalage de base zéro dans ascii qui spécifie le début de la sous-chaîne à décoder. L'opération de décodage continue jusqu'à la fin de la chaîne ascii .

Retours

Équivalent Unicode de la sous-chaîne IDNA spécifiée par les paramètres ascii et index.

Exceptions

ascii a la valeur null.

index est inférieur à zéro.

- ou -

index est supérieur à la longueur de ascii.

ascii est non valide selon les propriétés AllowUnassigned et UseStd3AsciiRules, ainsi que la norme IDNA.

Remarques

Pour plus d’informations sur les noms de domaine, les étiquettes et les séparateurs d’étiquettes, consultez les remarques relatives à la IdnMapping.GetAscii(String, Int32, Int32) méthode .

S’applique à

GetUnicode(String, Int32, Int32)

Source:
IdnMapping.cs
Source:
IdnMapping.cs
Source:
IdnMapping.cs

Décode une sous-chaîne d'une longueur spécifiée qui contient une ou plusieurs étiquettes de nom de domaine, encodées selon la norme IDNA en une chaîne de caractères Unicode.

public:
 System::String ^ GetUnicode(System::String ^ ascii, int index, int count);
public string GetUnicode (string ascii, int index, int count);
member this.GetUnicode : string * int * int -> string
Public Function GetUnicode (ascii As String, index As Integer, count As Integer) As String

Paramètres

ascii
String

Chaîne à décoder, qui se compose d'une ou plusieurs étiquettes dans la plage de caractères US-ASCII (U+0020 à U+007E), encodées selon la norme IDNA.

index
Int32

Offset de base zéro dans ascii qui spécifie le début de la sous-chaîne.

count
Int32

Nombre de caractères à convertir dans la sous-chaîne qui démarre à la position spécifiée par index et la chaîne ascii.

Retours

Équivalent Unicode de la sous-chaîne IDNA spécifiée par les paramètres ascii, index et count.

Exceptions

ascii a la valeur null.

index ou count est inférieur à zéro.

- ou -

index est supérieur à la longueur de ascii.

- ou -

index est supérieur à la longueur de ascii moins count.

ascii est non valide selon les propriétés AllowUnassigned et UseStd3AsciiRules, ainsi que la norme IDNA.

Remarques

Pour plus d’informations sur les noms de domaine, les étiquettes et les séparateurs d’étiquettes, consultez les remarques relatives à la IdnMapping.GetAscii(String, Int32, Int32) méthode .

S’applique à