В чем разница между Руной и Чар в C# при обращении с символами Unicode?C#

Место общения программистов C#
Ответить
Anonymous
 В чем разница между Руной и Чар в C# при обращении с символами Unicode?

Сообщение Anonymous »

Я пытаюсь понять, как System.Text.Rune отличается от встроенного типа ChAR, особенно в контексте обработки символов Unicode за пределами основной многоязычной плоскости (BMP). < /p>
Как использование руны влияет на обработку и манипуляцию не ASCII или суррогатных символов? Операции? Распородство между рунами и типом данных Char, когда дело доходит до обработки символов Unicode. < /p>
using System;
using System.Text;

class Program
{
private static void Main()
{
const string input = "Hello 𝓦orld!"; // "𝓦" is a surrogate pair (outside BMP)

// Counting characters using 'char'
// Each UTF-16 code unit is counted as one character
Console.WriteLine("Using char:");
Console.WriteLine($"Character count: {input.Length}"); // May count surrogate pairs as two

// Counting characters using 'Rune'
// Each full Unicode code point is counted as one
Console.WriteLine("\nUsing Rune:");
var runeCount = CountRunes(input);
Console.WriteLine($"Character count: {runeCount}");
}

///
/// Counts the number of Unicode scalar values (code points) in a string.
/// Uses Rune.EnumerateRunes which handles surrogate pairs correctly.
///
private static int CountRunes(string input)
{
return input.EnumerateRunes().Count();
}
}


Подробнее здесь: https://stackoverflow.com/questions/764 ... unicode-ch
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»