Partager via


Char.ConvertToUtf32 Méthode

Définition

Convertit la valeur d'une paire de substitution encodée UTF-16 en point de code Unicode.

Surcharges

ConvertToUtf32(Char, Char)

Convertit la valeur d'une paire de substitution encodée UTF-16 en point de code Unicode.

ConvertToUtf32(String, Int32)

Convertit la valeur d'une paire de substitution ou d'un caractère encodé UTF-16 à un emplacement précis d'une chaîne en un point de code Unicode.

Exemples

L’exemple de code suivant illustre ConvertToUtf32 les ConvertFromUtf32 méthodes et.

// This example demonstrates the Char.ConvertFromUtf32() method
//                           and Char.ConvertToUtf32() overloads.
using namespace System;
void Show( String^ s )
{
//   Console::Write( "0x{0:X}, 0x{1:X}", (int)s->get_Chars( 0 ), (int)s->get_Chars( 1 ) );
   Console::Write( "0x{0:X}, 0x{1:X}", (int)s[ 0 ], (int)s[ 1 ] );
}

int main()
{
   int music = 0x1D161; //U+1D161 = MUSICAL SYMBOL SIXTEENTH NOTE

   String^ s1;
   String^ comment1a = "Create a UTF-16 encoded string from a code point.";
   String^ comment1b = "Create a code point from a surrogate pair at a certain position in a string.";
   String^ comment1c = "Create a code point from a high surrogate and a low surrogate code point.";
   
   // -------------------------------------------------------------------
   //  Convert the code point U+1D161 to UTF-16. The UTF-16 equivalent of 
   //  U+1D161 is a surrogate pair with hexadecimal values D834 and DD61.
   Console::WriteLine( comment1a );
   s1 = Char::ConvertFromUtf32( music );
   Console::Write( "    1a) 0x{0:X} => ", music );
   Show( s1 );
   Console::WriteLine();
   
   //  Convert the surrogate pair in the string at index position 
   //  zero to a code point.
   Console::WriteLine( comment1b );
   music = Char::ConvertToUtf32( s1, 0 );
   Console::Write( "    1b) " );
   Show( s1 );
   Console::WriteLine( " => 0x{0:X}", music );
   
   //  Convert the high and low characters in the surrogate pair into a code point.
   Console::WriteLine( comment1c );
   music = Char::ConvertToUtf32( s1[ 0 ], s1[ 1 ] );
   Console::Write( "    1c) " );
   Show( s1 );
   Console::WriteLine( " => 0x{0:X}", music );
}

/*
This example produces the following results:

Create a UTF-16 encoded string from a code point.
    1a) 0x1D161 => 0xD834, 0xDD61
Create a code point from a surrogate pair at a certain position in a string.
    1b) 0xD834, 0xDD61 => 0x1D161
Create a code point from a high surrogate and a low surrogate code point.
    1c) 0xD834, 0xDD61 => 0x1D161

*/
// This example demonstrates the Char.ConvertFromUtf32() method
//                           and Char.ConvertToUtf32() overloads.
using System;

class Sample
{
    public static void Main()
    {
    int letterA = 0x0041;  //U+00041 = LATIN CAPITAL LETTER A
    int music   = 0x1D161; //U+1D161 = MUSICAL SYMBOL SIXTEENTH NOTE
    string s1;
    string comment   = "Create a UTF-16 encoded string from a code point.";
    string comment1b = "Create a code point from a UTF-16 encoded string.";
    string comment2b = "Create a code point from a surrogate pair at a certain position in a string.";
    string comment2c = "Create a code point from a high surrogate and a low surrogate code point.";

//  Convert code point U+0041 to UTF-16. The UTF-16 equivalent of
//  U+0041 is a Char with hexadecimal value 0041.

    Console.WriteLine(comment);
    s1 = Char.ConvertFromUtf32(letterA);
    Console.Write("    1a) 0x{0:X} => ", letterA);
    Show(s1);
    Console.WriteLine();

//  Convert the lone UTF-16 character to a code point.

    Console.WriteLine(comment1b);
    letterA = Char.ConvertToUtf32(s1, 0);
    Console.Write("    1b) ");
    Show(s1);
    Console.WriteLine(" => 0x{0:X}", letterA);
    Console.WriteLine();

// -------------------------------------------------------------------

//  Convert the code point U+1D161 to UTF-16. The UTF-16 equivalent of
//  U+1D161 is a surrogate pair with hexadecimal values D834 and DD61.

    Console.WriteLine(comment);
    s1 = Char.ConvertFromUtf32(music);
    Console.Write("    2a) 0x{0:X} => ", music);
    Show(s1);
    Console.WriteLine();

//  Convert the surrogate pair in the string at index position
//  zero to a code point.

    Console.WriteLine(comment2b);
    music = Char.ConvertToUtf32(s1, 0);
    Console.Write("    2b) ");
    Show(s1);
    Console.WriteLine(" => 0x{0:X}", music);

//  Convert the high and low characters in the surrogate pair into a code point.

    Console.WriteLine(comment2c);
    music = Char.ConvertToUtf32(s1[0], s1[1]);
    Console.Write("    2c) ");
    Show(s1);
    Console.WriteLine(" => 0x{0:X}", music);
    }

    private static void Show(string s)
    {
    for (int x = 0; x < s.Length; x++)
        {
        Console.Write("0x{0:X}{1}",
                       (int)s[x],
                       ((x == s.Length-1)? String.Empty : ", "));
        }
    }
}
/*
This example produces the following results:

Create a UTF-16 encoded string from a code point.
    1a) 0x41 => 0x41
Create a code point from a UTF-16 encoded string.
    1b) 0x41 => 0x41

Create a UTF-16 encoded string from a code point.
    2a) 0x1D161 => 0xD834, 0xDD61
Create a code point from a surrogate pair at a certain position in a string.
    2b) 0xD834, 0xDD61 => 0x1D161
Create a code point from a high surrogate and a low surrogate code point.
    2c) 0xD834, 0xDD61 => 0x1D161

*/
open System

let show (s: string) =
    for x = 0 to s.Length - 1 do
        printf $"""0x{int s[x]:X}{if x = s.Length - 1 then String.Empty else ", "}"""                    

[<EntryPoint>]
let main _ =
    let letterA = 0x0041  //U+00041 = LATIN CAPITAL LETTER A
    let music   = 0x1D161 //U+1D161 = MUSICAL SYMBOL SIXTEENTH NOTE
    let comment   = "Create a UTF-16 encoded string from a code point."
    let comment1b = "Create a code point from a UTF-16 encoded string."
    let comment2b = "Create a code point from a surrogate pair at a certain position in a string."
    let comment2c = "Create a code point from a high surrogate and a low surrogate code point."

//  Convert code point U+0041 to UTF-16. The UTF-16 equivalent of
//  U+0041 is a Char with hexadecimal value 0041.

    printfn $"{comment}"
    let s1 = Char.ConvertFromUtf32 letterA
    printf $"    1a) 0x{letterA:X} => "
    show s1
    printfn ""

//  Convert the lone UTF-16 character to a code point.

    printfn $"{comment1b}"
    let letterA = Char.ConvertToUtf32(s1, 0)
    printf "    1b) "
    show s1
    printfn $" => 0x{letterA:X}"
    printfn ""

// -------------------------------------------------------------------

//  Convert the code point U+1D161 to UTF-16. The UTF-16 equivalent of
//  U+1D161 is a surrogate pair with hexadecimal values D834 and DD61.

    printfn $"{comment}"
    let s1 = Char.ConvertFromUtf32 music
    printf $"    2a) 0x{music:X} => "
    show s1
    printfn ""

//  Convert the surrogate pair in the string at index position
//  zero to a code point.

    printfn $"{comment2b}" 
    let music = Char.ConvertToUtf32(s1, 0)
    printf "    2b) "
    show s1
    printfn $" => 0x{music:X}"

//  Convert the high and low characters in the surrogate pair into a code point.

    printfn $"{comment2c}"
    let music = Char.ConvertToUtf32(s1[0], s1[1])
    printf "    2c) "
    show s1
    printfn $" => 0x{music:X}"

    0

// This example produces the following results:
//
// Create a UTF-16 encoded string from a code point.
//     1a) 0x41 => 0x41
// Create a code point from a UTF-16 encoded string.
//     1b) 0x41 => 0x41
//
// Create a UTF-16 encoded string from a code point.
//     2a) 0x1D161 => 0xD834, 0xDD61
// Create a code point from a surrogate pair at a certain position in a string.
//     2b) 0xD834, 0xDD61 => 0x1D161
// Create a code point from a high surrogate and a low surrogate code point.
//     2c) 0xD834, 0xDD61 => 0x1D161
Class Sample
   Public Shared Sub Main()
      Dim letterA As Integer = &H41    'U+00041 = LATIN CAPITAL LETTER A
      Dim music As Integer   = &H1D161 'U+1D161 = MUSICAL SYMBOL SIXTEENTH NOTE
      Dim s1 As String
      Dim comment   As String = "Create a UTF-16 encoded string from a code point."
      Dim comment1b As String = "Create a code point from a UTF-16 encoded string."
      Dim comment2b As String = "Create a code point from a surrogate pair at a certain position in a string."
      Dim comment2c As String = "Create a code point from a high surrogate and a low surrogate code point."
      
      '  Convert code point U+0041 to UTF-16. The UTF-16 equivalent of 
      '  U+0041 is a Char with hexadecimal value 0041.

      Console.WriteLine(comment)
      s1 = [Char].ConvertFromUtf32(letterA)
      Console.Write("    1a) 0x{0:X} => ", letterA)
      Show(s1)
      Console.WriteLine()
      
      '  Convert the lone UTF-16 character to a code point.

      Console.WriteLine(comment1b)
      letterA = [Char].ConvertToUtf32(s1, 0)
      Console.Write("    1b) ")
      Show(s1)
      Console.WriteLine(" => 0x{0:X}", letterA)
      Console.WriteLine()
      
      ' -------------------------------------------------------------------

      '  Convert the code point U+1D161 to UTF-16. The UTF-16 equivalent of 
      '  U+1D161 is a surrogate pair with hexadecimal values D834 and DD61.

      Console.WriteLine(comment)
      s1 = [Char].ConvertFromUtf32(music)
      Console.Write("    2a) 0x{0:X} => ", music)
      Show(s1)
      Console.WriteLine()
      
      '  Convert the surrogate pair in the string at index position 
      '  zero to a code point.

      Console.WriteLine(comment2b)
      music = [Char].ConvertToUtf32(s1, 0)
      Console.Write("    2b) ")
      Show(s1)
      Console.WriteLine(" => 0x{0:X}", music)
      
      '  Convert the high and low characters in the surrogate pair into a code point.

      Console.WriteLine(comment2c)
      music = [Char].ConvertToUtf32(s1.Chars(0), s1.Chars(1))
      Console.Write("    2c) ")
      Show(s1)
      Console.WriteLine(" => 0x{0:X}", music)
   End Sub
   
   Private Shared Sub Show(s As String)
      Dim x As Integer
      If s.Length = 0 Then Exit Sub
      For x = 0 To s.Length - 1
         Console.Write("0x{0:X}{1}", _
                        AscW(s.Chars(x)), _
                        IIf(x = s.Length - 1, [String].Empty, ", "))
      Next 
   End Sub 
End Class 
'
'This example produces the following results:
'
'Create a UTF-16 encoded string from a code point.
'    1a) 0x41 => 0x41
'Create a code point from a UTF-16 encoded string.
'    1b) 0x41 => 0x41
'
'Create a UTF-16 encoded string from a code point.
'    2a) 0x1D161 => 0xD834, 0xDD61
'Create a code point from a surrogate pair at a certain position in a string.
'    2b) 0xD834, 0xDD61 => 0x1D161
'Create a code point from a high surrogate and a low surrogate code point.
'    2c) 0xD834, 0xDD61 => 0x1D161
'

ConvertToUtf32(Char, Char)

Convertit la valeur d'une paire de substitution encodée UTF-16 en point de code Unicode.

public:
 static int ConvertToUtf32(char highSurrogate, char lowSurrogate);
public static int ConvertToUtf32 (char highSurrogate, char lowSurrogate);
static member ConvertToUtf32 : char * char -> int
Public Shared Function ConvertToUtf32 (highSurrogate As Char, lowSurrogate As Char) As Integer

Paramètres

highSurrogate
Char

Unité de code de substitution étendue (autrement dit, unité de code comprise entre U+D800 et U+DBFF).

lowSurrogate
Char

Unité de code de substitution faible (autrement dit, unité de code comprise entre U+DC00 et U+DFFF).

Retours

Int32

Point de code Unicode 21 bits représenté par les paramètres highSurrogate et lowSurrogate.

Exceptions

highSurrogate n’appartient pas à la plage U+D800 à U+DBFF, ou lowSurrogate n’appartient pas à la plage U+DC00 à U+DFFF.

Remarques

Utilisez cette méthode pour convertir une paire de substitution en point de code Unicode 21 bits. Pour convertir des données UTF-16 en données UTF-32, utilisez la System.Text.UTF32Encoding classe.

En règle générale, l’encodage UTF-16 représente un caractère Unicode unique sous la forme d’une unité de code 16 bits. Toutefois, il prend également en charge les paires de substitution, qui permettent de représenter un caractère abstrait unique sous forme d’unités de code 2 16 bits. Ces deux Char objets doivent avoir des unités de code comprises entre u + D800 et u + DBFF pour le premier substitut (élevé) et de u + DC00 et à u + DFFF pour le deuxième (faible) substitut. Les paires de substitution sont prises en charge uniquement par l’encodage UTF-16. Cette méthode permet de convertir un caractère représenté par une paire de substitution UTF-16 en un caractère à l’aide de l’encodage UTF-32.

Voir aussi

S’applique à

ConvertToUtf32(String, Int32)

Convertit la valeur d'une paire de substitution ou d'un caractère encodé UTF-16 à un emplacement précis d'une chaîne en un point de code Unicode.

public:
 static int ConvertToUtf32(System::String ^ s, int index);
public static int ConvertToUtf32 (string s, int index);
static member ConvertToUtf32 : string * int -> int
Public Shared Function ConvertToUtf32 (s As String, index As Integer) As Integer

Paramètres

s
String

Chaîne qui contient un caractère ou une paire de substitution.

index
Int32

Position d'index du caractère ou de la paire de substitution dans s.

Retours

Int32

Point de code Unicode 21 bits représenté par le caractère ou la paire de substitution à l'emplacement du paramètre s spécifié par le paramètre index.

Exceptions

s a la valeur null.

index n’est pas une position dans s.

La position d’index spécifiée contient une paire de substitution, et le premier caractère de la paire n’est pas un substitut étendu valide ou le deuxième caractère de la paire n’est pas un substitut faible valide.

Remarques

Utilisez cette méthode pour convertir un caractère ou une paire de substitution en point de code Unicode 21 bits. Pour convertir des données UTF-16 en données UTF-32, utilisez la System.Text.UTF32Encoding classe.

Voir aussi

S’applique à