โปรเจ็กต์นี้ประกอบด้วยไลบรารีที่ให้การเข้าถึงข้อมูลบางส่วนที่มีอยู่ในฐานข้อมูลอักขระ Unicode
Unicode 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 ประกอบด้วยชุดย่อย (ใหญ่) ของฐานข้อมูลอักขระ Unicode อย่างเป็นทางการที่จัดเก็บไว้ในรูปแบบไฟล์ที่กำหนดเอง
โปรแกรมต่อไปนี้จะแสดงข้อมูลเกี่ยวกับอักขระบางตัว:
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
ส่งคืนชื่อของอักขระตามที่กำหนดใน Unicode 1.0 เมื่อใช้ได้และแตกต่างจากชื่อปัจจุบันUnicodeCharInfo.Category
ส่งคืนหมวดหมู่ที่กำหนดให้กับจุดโค้ดที่ระบุหมายเหตุ: คุณสมบัติ UCD ISO_Comment จะไม่ถูกรวมไว้ เนื่องจากคุณสมบัตินี้ว่างเปล่าใน Unicode เวอร์ชันใหม่ทั้งหมด
โปรเจ็กต์ UnicodeInformation.Builder ดูแลการสร้างไฟล์ชื่อ ucd.dat ไฟล์นี้มีข้อมูล Unicode ที่ถูกบีบอัดโดยอัลกอริธึมการยุบของ .NET และควรรวมไว้ใน UnicodeInformation.dll เมื่อคอมไพล์