Char::ConvertToUtf32 Method (String^, Int32)
Converts the value of a UTF-16 encoded character or surrogate pair at a specified position in a string into a Unicode code point.
Assembly: mscorlib (in mscorlib.dll)
Parameters
- s
-
Type:
System::String^
A string that contains a character or surrogate pair.
- index
-
Type:
System::Int32
The index position of the character or surrogate pair in s.
Return Value
Type: System::Int32The 21-bit Unicode code point represented by the character or surrogate pair at the position in the s parameter specified by the index parameter.
| Exception | Condition |
|---|---|
| ArgumentNullException | s is null. |
| ArgumentOutOfRangeException | index is not a position within s. |
| ArgumentException | The specified index position contains a surrogate pair, and either the first character in the pair is not a valid high surrogate or the second character in the pair is not a valid low surrogate. |
Use this method to convert a character or surrogate pair into a 21-bit Unicode code point. To convert UTF-16 data into UTF-32 data, use the System.Text::UTF32Encoding class.
The following code example demonstrates the ConvertToUtf32 and ConvertFromUtf32 methods.
// 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 */
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.0
Windows Phone
Available since 8.1