Este proyecto consta de una biblioteca que proporciona acceso a algunos de los datos contenidos en la base de datos de caracteres Unicode.
Unicode 13.0 Emoji 13.0
UnicodeRadicalStrokeCount.StrokeCount ahora es de tipo System.SByte en lugar de System.Byte.
Obtenga la última versión del paquete en NuGet: https://www.nuget.org/packages/UnicodeInformation/. Una vez que la biblioteca esté instalada en su proyecto, encontrará todo lo que necesita en el espacio de nombres System.Unicode.
Todo lo proporcionado por la biblioteca estará bajo el espacio de nombres System.Unicode
. La documentación XML debe ser lo suficientemente completa para que puedas navegar por la API sin perderte.
En su estado actual, el proyecto está escrito en C# 7.3, compilable por Roslyn y apunta tanto a .NET Standard 2.0 como a .NET Standard 1.1. La biblioteca UnicodeInformation incluye un subconjunto (grande) de la base de datos oficial de caracteres Unicode almacenada en un formato de archivo personalizado.
El siguiente programa mostrará información sobre algunos caracteres:
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 ) ;
}
}
}
Explicaciones:
UnicodeInfo.GetCharInfo(int)
devuelve una estructura UnicodeCharInfo
que proporciona acceso a diversos bits de información asociados con el punto de código especificado.UnicodeInfo.GetDisplayText(UnicodeCharInfo)
es un método auxiliar que calcula un texto para mostrar para el punto de código especificado. Dado que algunos puntos de código no están diseñados para mostrarse de forma independiente, esto intentará hacer que el carácter especificado sea más visible. El algoritmo utilizado para proporcionar un texto mostrado es bastante simplista y sólo afectará a puntos de código muy específicos. (por ejemplo, caracteres de control) Para la mayoría de los puntos de código, esto simplemente devolverá la representación de cadena directa.UnicodeCharInfo.Name
devuelve el nombre del punto de código según lo especificado por el estándar Unicode. Tenga en cuenta que algunos caracteres, por diseño, no tendrán ningún nombre asignado en el estándar. (por ejemplo, personajes de control). Sin embargo, esos personajes pueden tener nombres alternativos asignados, que puedes usar como alternativas. (por ejemplo, UnicodeCharInfo.OldName
)UnicodeCharInfo.OldName
devuelve el nombre del carácter tal como se define en Unicode 1.0, cuando corresponda y sea diferente del nombre actual.UnicodeCharInfo.Category
devuelve la categoría asignada al punto de código especificado.NB: La propiedad UCD ISO_Comment nunca se incluirá ya que está vacía en todas las versiones nuevas de Unicode.
El proyecto UnicodeInformation.Builder se encarga de generar un archivo llamado ucd.dat. Este archivo contiene datos Unicode comprimidos por el algoritmo deflate de .NET y debe incluirse en UnicodeInformation.dll durante la compilación.