Этот проект состоит из библиотеки, которая обеспечивает доступ к некоторым данным, содержащимся в базе данных символов Юникода.
Юникод 13.0 Эмодзи 13.0
UnicodeRadicalStrokeCount.StrokeCount теперь имеет тип System.SByte вместо типа System.Byte.
Загрузите последнюю версию пакета на NuGet: https://www.nuget.org/packages/UnicodeInformation/. После установки библиотеки в ваш проект вы найдете все необходимое в пространстве имен System.Unicode.
Все, предоставляемое библиотекой, будет находиться в пространстве имен System.Unicode
. XML-документация должна быть достаточно полной, чтобы вы могли перемещаться по API и не заблудиться.
В своем текущем состоянии проект написан на C# 7.3, компилируется Roslyn и ориентирован как на .NET Standard 2.0, так и на .NET Standard 1.1. Библиотека UnicodeInformation включает в себя (большое) подмножество официальной базы данных символов Юникода, хранящейся в специальном формате файла.
Следующая программа отобразит информацию о нескольких символах:
using System ;
using System . Text ;
using System . Unicode ;
namespace Example
{
internal static class Program
{
private static void Main ( )
{
Console . OutputEncoding = Encoding . Unicode ;
PrintCodePointInfo ( 'A' ) ;
PrintCodePointInfo ( '∞' ) ;
PrintCodePointInfo ( 0x1F600 ) ;
}
private static void PrintCodePointInfo ( int codePoint )
{
var charInfo = UnicodeInfo . GetCharInfo ( codePoint ) ;
Console . WriteLine ( UnicodeInfo . GetDisplayText ( charInfo ) ) ;
Console . WriteLine ( "U+" + codePoint . ToString ( "X4" ) ) ;
Console . WriteLine ( charInfo . Name ?? charInfo . OldName ) ;
Console . WriteLine ( charInfo . Category ) ;
}
}
}
Пояснения:
UnicodeInfo.GetCharInfo(int)
возвращает структуру UnicodeCharInfo
, которая обеспечивает доступ к различным битам информации, связанным с указанной кодовой точкой.UnicodeInfo.GetDisplayText(UnicodeCharInfo)
— это вспомогательный метод, который вычисляет отображаемый текст для указанной кодовой точки. Поскольку некоторые кодовые точки не предназначены для отдельного отображения, будет предпринята попытка сделать указанный символ более отображаемым. Алгоритм, используемый для отображения текста, довольно упрощен и влияет только на очень конкретные точки кода. (например, управляющие символы) Для большинства кодовых точек это просто вернет прямое строковое представление.UnicodeCharInfo.Name
возвращает имя кодовой точки, указанное стандартом Unicode. Обратите внимание, что некоторым персонажам по задумке не будет присвоено какое-либо имя в стандарте. (например, управляющие символы) Однако этим символам могут быть назначены альтернативные имена, которые вы можете использовать в качестве запасных. (например, UnicodeCharInfo.OldName
)UnicodeCharInfo.OldName
возвращает имя символа, определенное в Юникоде 1.0, если оно применимо и отличается от текущего имени.UnicodeCharInfo.Category
возвращает категорию, присвоенную указанной кодовой точке.Примечание. Свойство UCD ISO_Comment никогда не будет включено, поскольку оно пусто во всех новых версиях Unicode.
Проект UnicodeInformation.Builder заботится о создании файла с именем ucd.dat. Этот файл содержит данные Юникода, сжатые алгоритмом дефляции .NET, и его следует включить в UnicodeInformation.dll при компиляции.