UTILS.
۱۰۰٪ در مرورگر
🔤

بازرس کاراکتر یونیکد

هر رشته را به code pointها بشکنید و برای هر یک مقدار hex به‌صورت U+، دسته، بلوک، بایت‌های UTF-8/UTF-16، entity مربوط به HTML، escape مربوط به JS، percent-encoding و نشانگرها را نشان دهید.

متنی را در بالا وارد کنید تا هر کاراکتر بازرسی شود.

درباره این ابزار

بازرس کاراکتر یونیکد یک رشته را به code pointهای منفرد آن تقسیم می‌کند و همه‌چیز درباره هر یک را نشان می‌دهد. بر اساس code point تکرار می‌کند (نه بر اساس واحد ۱۶ بیتی)، بنابراین کاراکترهای astral و ایموجی‌های ساخته‌شده از جفت‌های surrogate به‌درستی مدیریت می‌شوند. برای هر code point، glyph، مقدار hex آن به‌صورت U+XXXX، مقدار دهدهی، یک نام برای کاراکترهای شناخته‌شده، دسته عمومی و بلوک یونیکدی که به آن تعلق دارد را دریافت می‌کنید.

تمام تحلیل به‌صورت الگوریتمی در مرورگر شما استخراج می‌شود و هیچ‌چیزی بارگذاری نمی‌شود. کدگذاری‌ها از اصول اولیه محاسبه می‌شوند: بایت‌های UTF-8 از قواعد کدگذاری ۱ تا ۴ بایتی پیروی می‌کنند، واحدهای کد UTF-16 یک واحد منفرد در BMP یا یک جفت surrogate بالا/پایین (D800–DBFF / DC00–DFFF) بالای آن هستند، entity عددی HTML به‌صورت &#nnnn; است، escape مربوط به JavaScript برای BMP به‌صورت \uXXXX یا برای code pointهای astral به‌صورت \u{XXXXX} است، و percent-encoding همان بایت‌های UTF-8 نوشته‌شده به‌صورت %XX است. دسته عمومی (Lu، Ll، Nd، Mn، Zs، Cc، و غیره) با عبارات باقاعده property-escape یونیکد تشخیص داده می‌شود.

بازرس کاراکترهایی را که اغلب باعث باگ می‌شوند یا برای پنهان کردن متن استفاده می‌شوند علامت‌گذاری می‌کند: کاراکترهای عرض صفر (200B–200D، 2060، FEFF)، کنترل‌های دوطرفه (200E، 200F، 202A–202E، 2066–2069)، علامت‌های combining، و کاراکترهای کنترلی C0/C1 — این‌ها به‌صورت یک نقطه نشان داده می‌شوند تا محتوای نامرئی قابل مشاهده شود. یک خط خلاصه، تعداد code point، طول UTF-16 (String.length)، و تعداد کل بایت UTF-8 را گزارش می‌کند. این ابزار برای بازرسی است؛ برای نرمال‌سازی بین NFC و NFD از نرمال‌ساز یونیکد استفاده کنید. تفکیک کامل را به‌صورت متن جداشده با tab کپی کنید.

پرسش‌های پرتکرار

چرا یک ایموجی به‌عنوان یک ورودی حساب می‌شود اما طول ۲ دارد؟
بسیاری از ایموجی‌ها و همه کاراکترهای بالای U+FFFF، code pointهای منفردی هستند که در UTF-16 به‌صورت یک جفت surrogate کدگذاری می‌شوند — دو واحد ۱۶ بیتی. بازرس بر اساس code point تکرار می‌کند، بنابراین یک ردیف نشان می‌دهد، در حالی که String.length در JavaScript دو واحد را می‌شمارد، که خلاصه آن را جداگانه گزارش می‌کند.
بایت‌های UTF-8 و UTF-16 چگونه استخراج می‌شوند؟
آن‌ها مستقیماً از code point محاسبه می‌شوند: UTF-8 از قواعد استاندارد ۱ تا ۴ بایتی استفاده می‌کند، و UTF-16 یک واحد برای کاراکترهای BMP یا یک جفت surrogate بالا+پایین (D800–DBFF سپس DC00–DFFF) برای astralهاست. percent-encoding صرفاً همان بایت‌های UTF-8 به‌صورت %XX است.
نشانگرها چه معنایی دارند؟
آن‌ها کاراکترهای آسان‌برای‌ازدست‌دادن را برجسته می‌کنند: عرض صفر (200B–200D، 2060، FEFF)، کنترل‌های دوطرفه که می‌توانند متن را بازچینی کنند، علامت‌های combining که به یک حرف قبلی می‌چسبند، و کاراکترهای کنترلی. چنین کاراکترهایی به‌صورت یک نقطه میانی نمایش داده می‌شوند تا محتوای پنهان یا نامرئی آشکار شود.
آیا نام رسمی کاراکتر یونیکد را نشان می‌دهد؟
کاراکترهای شناخته‌شده (کدهای کنترلی، فاصله‌ها، کنترل‌های عرض صفر و دوطرفه) را نام‌گذاری می‌کند و همیشه بلوک یونیکد و دسته عمومی را برای هر code point نشان می‌دهد. نام‌های کامل هر کاراکتر از پایگاه داده یونیکد بسته‌بندی نشده‌اند، بنابراین نام بلوک در غیر این صورت به‌عنوان توصیف‌گر عمل می‌کند.

ابزارهای بیشتر