Explore Unicode characters in C#


Unicode characters
This example displays Unicode characters within a range of numeric values. Enter the minimum and maximum values to display and a font size. Then click List to display the characters in the range. When you move the mouse over the characters, the TextBox on the bottom left shows the character’s code. The Label to its right shows a sample of the character.

The sample character is helpful because the TextBox doesn’t always do a great job of knowing which character is under the mouse. For example, if you look closely at the picture, you’ll see that the mouse is slightly below and to the left of the character that is actually selected. You can use the sample to verify that you have selected the character you want.

Note that some characters confuse the TextBox. For example, if you try to list characters 0 through 100, you won’t see anything. If you try to list characters 1 through 100, you’ll get lots of interesting results.

This example uses the following code to display characters.

// Display the desired Unicode characters
private void btnList_Click(object sender, EventArgs e)
{
    txtChars.Clear();
    txtCharCode.Clear();
    Cursor = Cursors.WaitCursor;
    Refresh();

    // Set the font size.
    float font_size = float.Parse(txtFontSize.Text);
    txtChars.Font = new Font("Times New Roman", font_size);

    // Display the characters.
    int min = int.Parse(txtMin.Text);
    int max = int.Parse(txtMax.Text);
    StringBuilder sb = new StringBuilder();
    for (int i = min; i <= max; i++)
        sb.Append(((char)i).ToString());
    txtChars.Text = sb.ToString();
    txtChars.Select(0, 0);

    Cursor = Cursors.Default;
}

The code gets the font size you entered and gives the txtChars control a new font of that size.

Next the code gets the minimum and maximum character codes you want to display. It loops through those values, converts each to a character, and adds the character to a StringBuilder. When it finishes, the code displays the StringBuilder‘s results in the txtChars TextBox.

When you move the mouse over the txtChars control, the following code displays the character’s code and sample.

// Display the code for the character under the mouse.
private void txtChars_MouseMove(object sender, MouseEventArgs e)
{
    char ch = txtChars.GetCharFromPosition(e.Location);
    lblSample.Text = ch.ToString();
    txtCharCode.Text = ((int)ch).ToString();
}

This code uses the TextBox‘s GetCharFromPosition method to get the character under the mouse. It uses that character’s ToString method to convert it into a string and displays the string in the lblSample Label.

It then converts the character into an integer and uses the result’s ToString method to display the character’s numeric value.

After you use this program to find a character’s Unicode value, you can display the character in other programs by using code similar to the following.

int char_code = 10048;
lblSample.Text = ((char)char_code).ToString();

Or more concisely:

lblSample.Text = ((char)10048).ToString();


Download Example   Follow me on Twitter   RSS feed


About RodStephens

Rod Stephens is a software consultant and author who has written more than 30 books and 250 magazine articles covering C#, Visual Basic, Visual Basic for Applications, Delphi, and Java.
This entry was posted in internationalization, localization, strings and tagged , , , , , , , , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *