Ce projet consiste en une bibliothèque qui donne accès à certaines des données contenues dans la base de données de caractères Unicode.
Unicode 13.0 Émoji 13.0
UnicodeRadicalStrokeCount.StrokeCount est désormais de type System.SByte au lieu du type System.Byte.
Récupérez la dernière version du package sur NuGet : https://www.nuget.org/packages/UnicodeInformation/. Une fois la bibliothèque installée dans votre projet, vous trouverez tout ce dont vous avez besoin dans l'espace de noms System.Unicode.
Tout ce qui est fourni par la bibliothèque sera sous l'espace de noms System.Unicode
. La documentation XML doit être suffisamment complète pour que vous puissiez naviguer dans l'API sans vous perdre.
Dans son état actuel, le projet est écrit en C# 7.3, compilable par Roslyn, et cible à la fois .NET Standard 2.0 et .NET Standard 1.1. La bibliothèque UnicodeInformation comprend un (grand) sous-ensemble de la base de données officielle de caractères Unicode stockée dans un format de fichier personnalisé.
Le programme suivant affichera des informations sur quelques caractères :
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 ) ;
}
}
}
Explications :
UnicodeInfo.GetCharInfo(int)
renvoie une structure UnicodeCharInfo
qui donne accès à diverses informations associées au point de code spécifié.UnicodeInfo.GetDisplayText(UnicodeCharInfo)
est une méthode d'assistance qui calcule un texte d'affichage pour le point de code spécifié. Étant donné que certains points de code ne sont pas conçus pour être affichés de manière autonome, cela tentera de rendre le caractère spécifié plus affichable. L'algorithme utilisé pour fournir un texte affiché est assez simpliste et n'affectera que des points de code très spécifiques. (par exemple Caractères de contrôle) Pour la plupart des points de code, cela renverra simplement la représentation directe sous forme de chaîne.UnicodeCharInfo.Name
renvoie le nom du point de code tel que spécifié par la norme Unicode. Veuillez noter que certains personnages, de par leur conception, ne recevront aucun nom dans la norme. (par exemple, caractères de contrôle) Ces caractères peuvent cependant avoir des noms alternatifs qui leur sont attribués, que vous pouvez utiliser comme solutions de secours. (par exemple UnicodeCharInfo.OldName
)UnicodeCharInfo.OldName
renvoie le nom du caractère tel que défini dans Unicode 1.0, le cas échéant et différent du nom actuel.UnicodeCharInfo.Category
renvoie la catégorie attribuée au point de code spécifié.NB : La propriété UCD ISO_Comment ne sera jamais incluse puisque celle-ci est vide dans toutes les nouvelles versions Unicode.
Le projet UnicodeInformation.Builder se charge de générer un fichier nommé ucd.dat. Ce fichier contient des données Unicode compressées par l'algorithme deflate de .NET et doit être inclus dans UnicodeInformation.dll lors de la compilation.