Este projeto consiste em uma biblioteca que fornece acesso a alguns dos dados contidos no banco de dados de caracteres Unicode.
Unicode 13.0 Emoji 13.0
UnicodeRadicalStrokeCount.StrokeCount agora é do tipo System.SByte em vez do tipo System.Byte.
Obtenha a versão mais recente do pacote no NuGet: https://www.nuget.org/packages/UnicodeInformation/. Depois que a biblioteca estiver instalada em seu projeto, você encontrará tudo o que precisa no namespace System.Unicode.
Tudo fornecido pela biblioteca estará no namespace System.Unicode
. A documentação XML deve ser completa o suficiente para que você possa navegar pela API sem se perder.
Em seu estado atual, o projeto é escrito em C# 7.3, compilável por Roslyn, e tem como alvo o .NET Standard 2.0 e o .NET Standard 1.1. A biblioteca UnicodeInformation inclui um (grande) subconjunto do banco de dados oficial de caracteres Unicode armazenado em um formato de arquivo personalizado.
O programa a seguir exibirá informações sobre alguns 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 ) ;
}
}
}
Explicações:
UnicodeInfo.GetCharInfo(int)
retorna uma estrutura UnicodeCharInfo
que fornece acesso a vários bits de informação associados ao ponto de código especificado.UnicodeInfo.GetDisplayText(UnicodeCharInfo)
é um método auxiliar que calcula um texto de exibição para o ponto de código especificado. Como alguns pontos de código não foram projetados para serem exibidos de forma independente, isso tentará tornar o caractere especificado mais exibível. O algoritmo usado para fornecer um texto de exibição é bastante simplista e afetará apenas pontos de código muito específicos. (por exemplo, caracteres de controle) Para a maioria dos pontos de código, isso simplesmente retornará a representação direta da string.UnicodeCharInfo.Name
retorna o nome do ponto de código conforme especificado pelo padrão Unicode. Observe que alguns caracteres, por design, não terão nenhum nome atribuído a eles no padrão. (por exemplo, personagens de controle) Esses personagens, entretanto, podem ter nomes alternativos atribuídos a eles, que você pode usar como substitutos. (por exemplo, UnicodeCharInfo.OldName
)UnicodeCharInfo.OldName
retorna o nome do caractere conforme definido no Unicode 1.0, quando aplicável e diferente do nome atual.UnicodeCharInfo.Category
retorna a categoria atribuída ao ponto de código especificado.NB: A propriedade UCD ISO_Comment nunca será incluída, pois está vazia em todas as novas versões Unicode.
O projeto UnicodeInformation.Builder se encarrega de gerar um arquivo denominado ucd.dat. Este arquivo contém dados Unicode compactados pelo algoritmo deflate do .NET e deve ser incluído em UnicodeInformation.dll na compilação.