Export (0) Print
Expand All

Char.ConvertFromUtf32 Method

Note: This method is new in the .NET Framework version 2.0.

Converts the specified Unicode code point into a UTF-16 encoded string.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

public static string ConvertFromUtf32 (
	int utf32
)
public static String ConvertFromUtf32 (
	int utf32
)
public static function ConvertFromUtf32 (
	utf32 : int
) : String

Parameters

utf32

A 21-bit Unicode code point.

Return Value

A string consisting of one Char object or a surrogate pair of Char objects equivalent to the code point specified by the utf32 parameter.

Exception typeCondition

ArgumentOutOfRangeException

utf32 is not a valid 21-bit Unicode code point ranging from U+0 through U+10FFFF, excluding the surrogate pair range from U+D800 through U+DFFF.

Use this method to convert a 21-bit Unicode code point to a UTF-16 encoded string before testing the string with methods such as IsLowSurrogate(Char) and IsHighSurrogate(Char).

A valid code point outside the Basic Multilingual Plane (BMP) always yields a valid surrogate pair. However, a valid code point within the BMP might not yield a valid result according to the Unicode standard because no linguistic processing is used in the conversion. For that reason, use the System.Text.UTF32Encoding class to convert bulk UTF-32 data into bulk UTF-16 data.

The following code example demonstrates the ConvertToUtf32 and ConvertFromUtf32 methods.

// 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 character.";

//  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 character.
    2c) 0xD834, 0xDD61 => 0x1D161

*/

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

class Sample
{
    public static void main(String[] args)
    {
        int letterA = 0x41; //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 character.";
        //  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} => ", (Int32)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}", (Int32)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} => ", (Int32)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}", (Int32)music);
        //  Convert the high and low characters in the surrogate pair into a
        //  code point.
        Console.WriteLine(comment2C);
        music = Char.ConvertToUtf32(s1.get_Chars(0), s1.get_Chars(1));
        Console.Write("    2c) ");
        Show(s1);
        Console.WriteLine(" => 0x{0:X}", (Int32)music);
    } //main

    private static void Show(String s)
    {
        for (int x = 0; x < s.get_Length(); x++) {
            Console.Write("0x{0:X}{1}", (Int32)(s.get_Chars(x)),
                (x == s.get_Length() - 1) ? "" : ", ");
        }
    } //Show
} //Sample

/*
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 character.
    2c) 0xD834, 0xDD61 => 0x1D161

*/

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see System Requirements.

.NET Framework

Supported in: 2.0

Community Additions

ADD
Show:
© 2014 Microsoft