IdnMapping.GetUnicode Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Decoderen van een of meer domeinnaamlabels die zijn gecodeerd volgens de IDNA-standaard naar een tekenreeks met Unicode-tekens.
Overloads
| Name | Description |
|---|---|
| GetUnicode(String) |
Decodeert een tekenreeks van een of meer domeinnaamlabels, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens. |
| GetUnicode(String, Int32) |
Decodeert een subtekenreeks van een of meer domeinnaamlabels, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens. |
| GetUnicode(String, Int32, Int32) |
Decodeert een subtekenreeks van een opgegeven lengte die een of meer domeinnaamlabels bevat, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens. |
GetUnicode(String)
Decodeert een tekenreeks van een of meer domeinnaamlabels, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens.
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
Parameters
- ascii
- String
De tekenreeks om te decoderen, die bestaat uit een of meer labels in het US-ASCII tekenbereik (U+0020 tot U+007E) gecodeerd volgens de IDNA-standaard.
Retouren
Het Unicode-equivalent van de IDNA-subtekenreeks die is opgegeven door de ascii parameter.
Uitzonderingen
ascii is null.
ascii is ongeldig op basis van de AllowUnassigned en UseStd3AsciiRules eigenschappen en de IDNA-standaard.
Voorbeelden
In het volgende voorbeeld wordt de GetAscii(String) methode gebruikt om een matrix met geinternationaliseerde domeinnamen te converteren naar Punycode. De GetUnicode(String) methode converteert vervolgens de Punycode-domeinnaam terug naar de oorspronkelijke domeinnaam, maar vervangt de oorspronkelijke labelscheidingstekens door het standaardlabelscheidingsteken.
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
Opmerkingen
Zie de opmerkingen voor de IdnMapping.GetAscii(String, Int32, Int32) methode voor meer informatie over domeinnamen, labels en labelscheidingstekens.
Van toepassing op
GetUnicode(String, Int32)
Decodeert een subtekenreeks van een of meer domeinnaamlabels, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens.
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
Parameters
- ascii
- String
De tekenreeks om te decoderen, die bestaat uit een of meer labels in het US-ASCII tekenbereik (U+0020 tot U+007E) gecodeerd volgens de IDNA-standaard.
- index
- Int32
Een offset op basis van nul waarin ascii het begin van de subtekenreeks wordt aangegeven om te decoderen. De decoderingsbewerking gaat verder met het einde van de ascii tekenreeks.
Retouren
Het Unicode-equivalent van de IDNA-subtekenreeks die is opgegeven door de ascii en index parameters.
Uitzonderingen
ascii is null.
index is kleiner dan nul.
– of –
index is groter dan de lengte van ascii.
ascii is ongeldig op basis van de AllowUnassigned en UseStd3AsciiRules eigenschappen en de IDNA-standaard.
Opmerkingen
Zie de opmerkingen voor de IdnMapping.GetAscii(String, Int32, Int32) methode voor meer informatie over domeinnamen, labels en labelscheidingstekens.
Van toepassing op
GetUnicode(String, Int32, Int32)
Decodeert een subtekenreeks van een opgegeven lengte die een of meer domeinnaamlabels bevat, gecodeerd volgens de IDNA-standaard, naar een tekenreeks met Unicode-tekens.
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
Parameters
- ascii
- String
De tekenreeks om te decoderen, die bestaat uit een of meer labels in het US-ASCII tekenbereik (U+0020 tot U+007E) gecodeerd volgens de IDNA-standaard.
- index
- Int32
Een offset op basis van nul waarin ascii het begin van de subtekenreeks wordt aangegeven.
- count
- Int32
Het aantal tekens dat moet worden geconverteerd in de subtekenreeks die begint op de positie die is opgegeven in index de ascii tekenreeks.
Retouren
Het Unicode-equivalent van de IDNA-subtekenreeks die is opgegeven door de ascii, indexen count parameters.
Uitzonderingen
ascii is null.
index of count kleiner is dan nul.
– of –
index is groter dan de lengte van ascii.
– of –
index is groter dan de lengte van ascii min count.
ascii is ongeldig op basis van de AllowUnassigned en UseStd3AsciiRules eigenschappen en de IDNA-standaard.
Opmerkingen
Zie de opmerkingen voor de IdnMapping.GetAscii(String, Int32, Int32) methode voor meer informatie over domeinnamen, labels en labelscheidingstekens.